diff --git a/sc2/doc/devel/debug b/sc2/doc/devel/debug index 33f6ceb59..453498156 100644 --- a/sc2/doc/devel/debug +++ b/sc2/doc/devel/debug @@ -48,10 +48,10 @@ listed below: Outputs information on the universe to "./PlanetInfo". This function should only be called from debugHook, as threading issues would otherwise arrise. -- the function resetCrewBattle() - This function, when called in melee, sets the current crew level of the - bottom player's ship to its maximum. This works both in Supermelee and in - the full game. +- the functions resetCrewBattle() and resetEnergyBattle() + This function, when called in melee, sets the current crew or energy + level of the bottom player's ship to its maximum. This works both in + Supermelee and in the full game. - the function uio_debugInteractive() This function is not defined in sc2code/uqmdebug.h, but in libs/uio.h. This function can interactively (tty-based) display information on diff --git a/sc2/src/sc2code/uqmdebug.c b/sc2/src/sc2code/uqmdebug.c index 4ea886df8..35f5aab4b 100644 --- a/sc2/src/sc2code/uqmdebug.c +++ b/sc2/src/sc2code/uqmdebug.c @@ -64,6 +64,7 @@ debugKeyPressed (void) // State modifying: equipShip (); resetCrewBattle (); + resetEnergyBattle (); instantMove = !instantMove; showSpheres (); activateAllShips (); @@ -1287,6 +1288,29 @@ resetCrewBattle(void) { SetContext (OldContext); } +void +resetEnergyBattle(void) { + STARSHIPPTR StarShipPtr; + COUNT delta; + CONTEXT OldContext; + + if (!(GLOBAL (CurrentActivity) & IN_BATTLE) || + (LOBYTE (GLOBAL (CurrentActivity)) == IN_HYPERSPACE)) + return; + + StarShipPtr = findPlayerShip (GOOD_GUY); + if (StarShipPtr == NULL || StarShipPtr->RaceDescPtr == NULL) + return; + + delta = StarShipPtr->RaceDescPtr->ship_info.max_energy - + StarShipPtr->RaceDescPtr->ship_info.energy_level; + + OldContext = SetContext (StatusContext); + DeltaEnergy (StarShipPtr->hShip, delta); + SetContext (OldContext); +} + + #endif /* DEBUG */ diff --git a/sc2/src/sc2code/uqmdebug.h b/sc2/src/sc2code/uqmdebug.h index b66b99aec..4c42017d4 100644 --- a/sc2/src/sc2code/uqmdebug.h +++ b/sc2/src/sc2code/uqmdebug.h @@ -148,6 +148,9 @@ STARSHIPPTR findPlayerShip(ELEMENT_FLAGS which); // Resets the crew of the first player (the bottom one) to its maximum. void resetCrewBattle(void); +// Resets the energy of the first player (the bottom one) to its maximum. +void resetEnergyBattle(void); + // Move instantly across hyperspace/quasispace. extern BOOLEAN instantMove;