void ListWeapons(int y, int xc) { ShowWeaponStatus(10, y, 0, xc); ShowWeaponStatus(10, y + TH, 1, xc); ShowWeaponStatus(10, y + 2 * TH, 2, xc); ShowWeaponStatus(10, y + 3 * TH, 3, xc); ShowWeaponStatus(100, y, 4, xc); ShowWeaponStatus(100, y + TH, 5, xc); ShowWeaponStatus(100, y + 2 * TH, 6, xc); ShowWeaponStatus(100, y + 3 * TH, 7, xc); ShowWeaponStatus(190, y, 8, xc); ShowWeaponStatus(190, y + TH, 9, xc); ShowWeaponStatus(190, y + 2 * TH, 10, xc); SetSecondaryMouseRects(localWeaponClicks); }
void HandleTestKey(int key) { switch (key) { case KEYDBGGED + KEY_0: ShowWeaponStatus (); break; #ifdef SHOW_EXIT_PATH case KEYDBGGED + KEY_1: MarkPathToExit (); break; #endif case KEYDBGGED + KEY_Y: DoReactorDestroyedStuff(NULL); break; case KEYDBGGED + KEY_ALTED + KEY_D: networkData.nNetLifeKills=4000; networkData.nNetLifeKilled=5; MultiAddLifetimeKills (); break; case KEY_BACKSPACE: case KEY_CTRLED + KEY_BACKSPACE: case KEY_ALTED + KEY_BACKSPACE: case KEY_ALTED + KEY_CTRLED + KEY_BACKSPACE: case KEY_SHIFTED + KEY_BACKSPACE: case KEY_SHIFTED + KEY_ALTED + KEY_BACKSPACE: case KEY_SHIFTED + KEY_CTRLED + KEY_BACKSPACE: case KEY_SHIFTED + KEY_CTRLED + KEY_ALTED + KEY_BACKSPACE: Int3 (); break; case KEY_CTRLED + KEY_ALTED + KEY_ENTER: exit (0); break; case KEYDBGGED + KEY_S: audio.Reset (); break; case KEYDBGGED + KEY_P: if (gameStates.app.bGameSuspended & SUSP_ROBOTS) gameStates.app.bGameSuspended &= ~SUSP_ROBOTS; //robots move else gameStates.app.bGameSuspended |= SUSP_ROBOTS; //robots don't move break; case KEYDBGGED + KEY_K: LOCALPLAYER.shields = 1; MultiSendShields (); break; // a virtual kill case KEYDBGGED + KEY_SHIFTED + KEY_K: LOCALPLAYER.shields = -1; MultiSendShields (); break; // an actual kill case KEYDBGGED + KEY_X: LOCALPLAYER.lives++; break; // Extra life cheat key. case KEYDBGGED + KEY_H: // if (!(gameData.app.nGameMode & GM_MULTI)) { LOCALPLAYER.flags ^= PLAYER_FLAGS_CLOAKED; if (LOCALPLAYER.flags & PLAYER_FLAGS_CLOAKED) { if (gameData.app.nGameMode & GM_MULTI) MultiSendCloak (); AIDoCloakStuff (); LOCALPLAYER.cloakTime = gameData.time.xGame; #if TRACE console.printf (CON_DBG, "You are cloaked!\n"); #endif } else #if TRACE console.printf (CON_DBG, "You are DE-cloaked!\n"); #endif // } break; case KEYDBGGED + KEY_R: gameStates.app.cheats.bRobotsFiring = !gameStates.app.cheats.bRobotsFiring; break; case KEYDBGGED + KEY_R + KEY_SHIFTED: KillAllRobots (1); break; //flythrough keys #if DBG case KEYDBGGED + KEY_LAPOSTRO: showViewTextTimer = 0x30000; ObjectGotoNextViewer (); break; case KEYDBGGED + KEY_CTRLED + KEY_LAPOSTRO: showViewTextTimer = 0x30000; ObjectGotoPrevViewer (); break; #endif case KEYDBGGED + KEY_SHIFTED + KEY_LAPOSTRO: gameData.objs.viewerP=gameData.objs.consoleP; break; #if DBG case KEYDBGGED + KEY_O: ToggleOutlineMode (); break; #endif case KEYDBGGED + KEY_T: *Toggle_var = !*Toggle_var; #if TRACE console.printf (CON_DBG, "Variable at %08x set to %i\n", Toggle_var, *Toggle_var); #endif break; case KEYDBGGED + KEY_L: if (++gameStates.render.nLighting >= 2) gameStates.render.nLighting = 0; break; case KEYDBGGED + KEY_SHIFTED + KEY_L: xBeamBrightness = 0x38000 - xBeamBrightness; break; case KEY_PAD5: slew_stop (); break; case KEYDBGGED + KEY_F4: { //tCollisionData hitData; //CFixVector p0 = {-0x1d99a7, -0x1b20000, 0x186ab7f}; //CFixVector p1 = {-0x217865, -0x1b20000, 0x187de3e}; //FindHitpoint(&hitData, &p0, 0x1b9, &p1, 0x40000, 0x0, NULL, -1); break; } case KEYDBGGED + KEY_M: gameStates.app.bDebugSpew = !gameStates.app.bDebugSpew; if (gameStates.app.bDebugSpew) { mopen(0, 8, 1, 78, 16, "Debug Spew"); HUDInitMessage("Debug Spew: ON"); } else { mclose(0); HUDInitMessage("Debug Spew: OFF"); } break; case KEYDBGGED + KEY_C: paletteManager.SaveEffectAndReset (); DoCheatMenu (); paletteManager.LoadEffect (); break; case KEYDBGGED + KEY_SHIFTED + KEY_A: DoMegaWowPowerup(10); break; case KEYDBGGED + KEY_A: { DoMegaWowPowerup(200); // if (gameData.app.nGameMode & GM_MULTI) { // MsgBox(NULL, 1, "Damn", "CHEATER!\nYou cannot use the\nmega-thing in network mode."); // gameData.multigame.msg.nReceiver = 100; // Send to everyone... // sprintf(gameData.multigame.msg.szMsg, "%s cheated!", LOCALPLAYER.callsign); // } else { // DoMegaWowPowerup (); // } break; } case KEYDBGGED + KEY_F: gameStates.render.bShowFrameRate = !gameStates.render.bShowFrameRate; break; case KEYDBGGED + KEY_SPACEBAR: //KEY_F7: // Toggle physics flying slew_stop (); GameFlushInputs (); if (gameData.objs.consoleP->info.controlType != CT_FLYING) { FlyInit(gameData.objs.consoleP); gameStates.app.bGameSuspended &= ~SUSP_ROBOTS; //robots move } else { slew_init(gameData.objs.consoleP); //start CPlayerData slewing gameStates.app.bGameSuspended |= SUSP_ROBOTS; //robots don't move } break; case KEYDBGGED + KEY_COMMA: gameStates.render.xZoom = FixMul(gameStates.render.xZoom, 62259); break; case KEYDBGGED + KEY_PERIOD: gameStates.render.xZoom = FixMul(gameStates.render.xZoom, 68985); break; case KEYDBGGED + KEY_P + KEY_SHIFTED: Debug_pause = 1; break; case KEYDBGGED + KEY_B: { CMenu m (1); char text [FILENAME_LEN] = ""; int item; m.AddInput (text, FILENAME_LEN); item = m.Menu (NULL, "Briefing to play?"); if (item != -1) briefing.Run (text, 1); break; } case KEYDBGGED + KEY_F5: ToggleMovieSaving (); break; case KEYDBGGED + KEY_SHIFTED + KEY_F5: { extern int Movie_fixed_frametime; Movie_fixed_frametime = !Movie_fixed_frametime; break; } case KEYDBGGED + KEY_ALTED + KEY_F5: gameData.time.xGame = I2X(0x7fff - 840); //will overflow in 14 minutes #if TRACE console.printf (CON_DBG, "gameData.time.xGame bashed to %d secs\n", X2I(gameData.time.xGame)); #endif break; case KEYDBGGED + KEY_SHIFTED + KEY_B: KillEverything (1); break; } }