Add networking

This commit is contained in:
2024-08-30 19:07:56 +02:00
parent 842c41fdca
commit dc854d411f
13 changed files with 1529 additions and 296 deletions
+15 -15
View File
@@ -74,15 +74,15 @@ type PlayerColors struct {
func getNeededPlayers() (neededPlayers uint8) {
neededPlayers = 0
if DoAllKeymapsPlayers {
if config.DoAllKeymapsPlayers {
neededPlayers += uint8(len(keyMaps))
} else if DoKeymapPlayer && len(keyMaps) > 0 {
} else if config.DoKeymapPlayer && len(keyMaps) > 0 {
neededPlayers++
}
if DoJoyStickPlayers {
if config.DoJoyStickPlayers {
neededPlayers += uint8(sdl.NumJoysticks())
}
if neededPlayers < 2 {
if neededPlayers < 2 && !config.Server {
neededPlayers = 2
}
return neededPlayers
@@ -285,9 +285,9 @@ func initPlayerColors() {
}
}
func handleInput(keyboard []uint8, bullets *[]*Bullet, player *Player, gameMap *GameMap, players *[]*Player) (bool, bool) {
if !player.local || player.shields <= 0 || player.shields > MaxShields {
return true, false
func handleInput(keyboard []uint8, bullets map[uint32]*Bullet, player *Player, gameMap *GameMap, players map[uint32]*Player) bool {
if !player.local || player.shields <= 0 || player.shields > serverConfig.MaxShields {
return true
}
shoot := false
super := false
@@ -306,7 +306,7 @@ func handleInput(keyboard []uint8, bullets *[]*Bullet, player *Player, gameMap *
}
if key == player.keyMap.exit {
return false, shoot
return false
} else if key == player.keyMap.shoot {
shoot = true
} else if key == player.keyMap.super {
@@ -329,10 +329,10 @@ func handleInput(keyboard []uint8, bullets *[]*Bullet, player *Player, gameMap *
xAxis := player.joyStick.Axis(player.joyMap.xAxis)
yAxis := player.joyStick.Axis(player.joyMap.yAxis)
moveRight = xAxis > JoyStickDeadZone
moveLeft = xAxis < -JoyStickDeadZone
moveUp = yAxis > JoyStickDeadZone
moveDown = yAxis < -JoyStickDeadZone
moveRight = xAxis > config.JoyStickDeadZone
moveLeft = xAxis < -config.JoyStickDeadZone
moveUp = yAxis > config.JoyStickDeadZone
moveDown = yAxis < -config.JoyStickDeadZone
} else {
moveUp = player.joyStick.Button(player.joyMap.upButton) == sdl.PRESSED
@@ -341,7 +341,7 @@ func handleInput(keyboard []uint8, bullets *[]*Bullet, player *Player, gameMap *
moveRight = player.joyStick.Button(player.joyMap.rightButton) == sdl.PRESSED
}
if player.joyStick.Button(player.joyMap.exitButton) == sdl.PRESSED {
return false, shoot
return false
}
if player.joyStick.Button(player.joyMap.shootButton) == sdl.PRESSED {
shoot = true
@@ -379,9 +379,9 @@ func handleInput(keyboard []uint8, bullets *[]*Bullet, player *Player, gameMap *
// Handle movement after the loop
if moveUp || moveDown || moveLeft || moveRight {
if player.tryMove(gameMap, shoot, players) {
player.energy -= MovementCost
player.energy -= serverConfig.MovementCost
}
}
return true, shoot
return true
}