aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sword2/sword2.cpp570
-rw-r--r--sword2/sword2.h16
2 files changed, 295 insertions, 291 deletions
diff --git a/sword2/sword2.cpp b/sword2/sword2.cpp
index d0dd408796..9dad451090 100644
--- a/sword2/sword2.cpp
+++ b/sword2/sword2.cpp
@@ -17,7 +17,6 @@
* $Header$
*/
-//------------------------------------------------------------------------------------
#include "stdafx.h"
#include "base/gameDetector.h"
@@ -49,39 +48,31 @@
#include "bs2/driver/driver96.h"
#include "bs2/driver/palette.h"
-#define MAX_PATH 260
-
-int RunningFromCd();
-
uint8 quitGame = 0;
-//------------------------------------------------------------------------------------
// version & owner details
-//So version string is 18 bytes long :
-//Version String = <8 byte header,5 character version, \0, INT32 time>
-
-uint8 version_string[HEAD_LEN+10] = {1, 255, 37, 22, 45, 128, 34, 67};
+// So version string is 18 bytes long :
+// Version String = <8 byte header,5 character version, \0, INT32 time>
-uint8 unencoded_name[HEAD_LEN+48] = {76, 185, 205, 23, 44, 34, 24, 34,
- 'R','e','v','o','l','u','t','i','o','n',' ',
- 'S','o','f','t','w','a','r','e',' ','L','t','d',
- 0};
+uint8 version_string[HEAD_LEN + 10] = { 1, 255, 37, 22, 45, 128, 34, 67 };
-uint8 encoded_name[HEAD_LEN+48] = {44, 32, 190, 222, 123, 65, 233, 99,
- 179, 209, 225, 157, 222, 238, 219, 209, 143, 224, 133, 190,
- 232, 209, 162, 177, 198, 228, 202, 146, 180, 232, 214, 65,
- 65, 65, 116, 104, 116, 114, 107, 104, 32, 49, 64, 35, 123,
- 125, 61, 45, 41, 40, 163, 36, 49, 123, 125, 10};
+uint8 unencoded_name[HEAD_LEN + 48] = {
+ 76, 185, 205, 23, 44, 34, 24, 34,
+ 'R','e','v','o','l','u','t','i','o','n',' ',
+ 'S','o','f','t','w','a','r','e',' ','L','t','d',
+ 0 };
-//------------------------------------------------------------------------------------
+uint8 encoded_name[HEAD_LEN + 48] = {
+ 44, 32, 190, 222, 123, 65, 233, 99,
+ 179, 209, 225, 157, 222, 238, 219, 209, 143, 224, 133, 190,
+ 232, 209, 162, 177, 198, 228, 202, 146, 180, 232, 214, 65,
+ 65, 65, 116, 104, 116, 114, 107, 104, 32, 49, 64, 35, 123,
+ 125, 61, 45, 41, 40, 163, 36, 49, 123, 125, 10 };
-uint8 gamePaused=0; // James17jun97
-//uint32 pause_text_bloc_no=0; // James17jun97
-uint8 graphics_level_fudged=0; // James10july97
-uint8 stepOneCycle=0; // for use while game paused
-
-//------------------------------------------------------------------------------------
+uint8 gamePaused = 0;
+uint8 graphics_level_fudged = 0;
+uint8 stepOneCycle = 0; // for use while game paused
static const TargetSettings sword2_settings[] = {
/* Broken Sword 2 */
@@ -126,158 +117,167 @@ Sword2State::Sword2State(GameDetector *detector, OSystem *syst)
File::setDefaultDirectory(_gameDataPath);
}
-
void Sword2State::errorString(const char *buf1, char *buf2) {
strcpy(buf2, buf1);
}
-int32 Sword2State::InitialiseGame(void)
-{
-//init engine drivers
+int32 Sword2State::InitialiseGame(void) {
+ // init engine drivers
- uint8 *file;
+ uint8 *file;
- Zdebug("CALLING: Init_memory_manager");
- Init_memory_manager(); // get some falling RAM and put it in your pocket, never let it slip away
- Zdebug("RETURNED.");
+ // get some falling RAM and put it in your pocket, never let it slip
+ // away
+ // Zdebug("CALLING: Init_memory_manager");
+ Init_memory_manager();
+ // Zdebug("RETURNED.");
- Zdebug("CALLING: res_man.InitResMan");
- res_man.InitResMan(); // initialise the resource manager
+ // initialise the resource manager
+ // Zdebug("CALLING: res_man.InitResMan");
+ res_man.InitResMan();
Zdebug("RETURNED from res_man.InitResMan");
- // initialise global script variables
- file=res_man.Res_open(1); // res 1 is the globals list
- Zdebug("CALLING: SetGlobalInterpreterVariables");
- SetGlobalInterpreterVariables((int32*)(file+sizeof(_standardHeader)));
- Zdebug("RETURNED.");
-// res_man.Res_close(1); // DON'T CLOSE VARIABLES RESOURCE - KEEP IT OPEN AT VERY START OF MEMORY SO IT CAN'T MOVE!
-
- file=res_man.Res_open(8); // DON'T CLOSE PLAYER OBJECT RESOURCE - KEEP IT OPEN IN MEMORY SO IT CAN'T MOVE!
-
- //----------------------------------------
- Zdebug("CALLING: InitialiseFontResourceFlags");
- InitialiseFontResourceFlags(); // Set up font resource variables for this language version (James31july97)
- // Also set the windows application name to the proper game name
- Zdebug("RETURNED.");
- //----------------------------------------
-
- Zdebug("CALLING: Init_console");
- Init_console(); // set up the console system
- Zdebug("RETURNED.");
-
- #ifdef _SWORD2_DEBUG
- Zdebug("CALLING: Init_start_menu");
- Init_start_menu(); // read in all the startup information
- Zdebug("RETURNED from Init_start_menu");
- #endif // _SWORD2_DEBUG
-
+ // initialise global script variables
+ // res 1 is the globals list
+ file = res_man.Res_open(1);
+ // Zdebug("CALLING: SetGlobalInterpreterVariables");
+ SetGlobalInterpreterVariables((int32 * ) (file + sizeof(_standardHeader)));
+ // Zdebug("RETURNED.");
+ // DON'T CLOSE VARIABLES RESOURCE - KEEP IT OPEN AT VERY START OF
+ // MEMORY SO IT CAN'T MOVE!
+ // res_man.Res_close(1);
+
+ // DON'T CLOSE PLAYER OBJECT RESOURCE - KEEP IT OPEN IN MEMORY SO IT
+ // CAN'T MOVE!
+ file = res_man.Res_open(8);
+
+ // Set up font resource variables for this language version
+ // (James31july97)
+ // Zdebug("CALLING: InitialiseFontResourceFlags");
+ InitialiseFontResourceFlags();
+ // Also set the windows application name to the proper game name
+ // Zdebug("RETURNED.");
+
+ // set up the console system
+ // Zdebug("CALLING: Init_console");
+ Init_console();
+ // Zdebug("RETURNED.");
+#ifdef _SWORD2_DEBUG
+ // read in all the startup information
+ // Zdebug("CALLING: Init_start_menu");
+ Init_start_menu();
+ // Zdebug("RETURNED from Init_start_menu");
+#endif
- Zdebug("CALLING: Init_text_bloc_system");
- Init_text_bloc_system(); // no blocs live
- Zdebug("RETURNED.");
+ // no blocs live
+ // Zdebug("CALLING: Init_text_bloc_system");
+ Init_text_bloc_system();
+ // Zdebug("RETURNED.");
- Zdebug("CALLING: Init_sync_system");
+ // Zdebug("CALLING: Init_sync_system");
Init_sync_system();
- Zdebug("RETURNED.");
+ // Zdebug("RETURNED.");
- Zdebug("CALLING: Init_event_system");
+ // Zdebug("CALLING: Init_event_system");
Init_event_system();
- Zdebug("RETURNED.");
+ // Zdebug("RETURNED.");
- Zdebug("CALLING: Init_fx_queue");
- Init_fx_queue(); // initialise the sound fx queue
- Zdebug("RETURNED.");
+ // initialise the sound fx queue
+ // Zdebug("CALLING: Init_fx_queue");
+ Init_fx_queue();
+ // Zdebug("RETURNED.");
// all demos (not just web)
- if (_gameId == GID_SWORD2_DEMO)
- DEMO=1; // set script variable
+ if (_gameId == GID_SWORD2_DEMO) {
+ // set script variable
+ DEMO = 1;
+ }
- return(0);
+ return 0;
}
-//------------------------------------------------------------------------------------
-void Close_game() //Tony11Oct96
-{
- Zdebug("Close_game() STARTING:");
+
+void Close_game() { // Tony11Oct96
+ // Zdebug("Close_game() STARTING:");
EraseBackBuffer();
- Kill_music(); // Stop music instantly! (James22aug97)
- Close_memory_manager(); // free the memory again
+ // Stop music instantly! (James22aug97)
+ Kill_music();
+
+ // free the memory again
+ Close_memory_manager();
res_man.Close_ResMan();
- Zdebug("Close_game() DONE.");
+ // Zdebug("Close_game() DONE.");
}
-//------------------------------------------------------------------------------------
-int32 GameCycle(void)
-{
-//do one game cycle
-
-
- {
- if (LLogic.Return_run_list()) //got a screen to run?
- {
- do //run the logic session UNTIL a full loop has been performed
- {
- Reset_render_lists(); // reset the graphic 'buildit' list before a new logic list (see FN_register_frame)
- Reset_mouse_list(); // reset the mouse hot-spot list (see FN_register_mouse & FN_register_frame)
- }
- while(LLogic.Process_session()); //keep going as long as new lists keep getting put in - i.e. screen changes
- }
- else //start the console and print the start options perhaps?
- {
- StartConsole();
- Print_to_console("AWAITING START COMMAND: (Enter 's 1' then 'q' to start from beginning)");
- }
- }
- if (this_screen.scroll_flag) // if this screen is wide
- Set_scrolling(); // recompute the scroll offsets every game-cycle
+int32 GameCycle(void) {
+ // do one game cycle
+
+ //got a screen to run?
+ if (LLogic.Return_run_list()) {
+ //run the logic session UNTIL a full loop has been performed
+ do {
+ // reset the graphic 'buildit' list before a new
+ // logic list (see FN_register_frame)
+ Reset_render_lists();
+
+ // reset the mouse hot-spot list (see FN_register_mouse
+ // & FN_register_frame)
+ Reset_mouse_list();
+
+ // keep going as long as new lists keep getting put in
+ // - i.e. screen changes
+ } while (LLogic.Process_session());
+ } else {
+ // start the console and print the start options perhaps?
+ StartConsole();
+ Print_to_console("AWAITING START COMMAND: (Enter 's 1' then 'q' to start from beginning)");
+ }
- Mouse_engine(); //check the mouse
+ // if this screen is wide, recompute the scroll offsets every cycle
+ if (this_screen.scroll_flag)
+ Set_scrolling();
+ Mouse_engine();
Process_fx_queue();
- res_man.Res_next_cycle(); // update age and calculate previous cycle memory usage
+ // update age and calculate previous cycle memory usage
+ res_man.Res_next_cycle();
if (quitGame)
- return(1);
- else
- return(0);
+ return 1;
+
+ return 0;
}
-//------------------------------------------------------------------------------------
-// int main(int argc, char *argv[])
-// int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
-void Sword2State::go()
-{
+
+void Sword2State::go() {
OSystem::Property prop;
uint32 rv;
uint8 breakOut = 0;
char c;
-// Zdebug("[%s]", lpCmdLine);
-
-
- #ifndef _SWORD2_DEBUG
- DisableQuitKey(); // so cannot use Ctrl-Q from the release versions (full game or demo)
- #endif
-
-
- if (RunningFromCd()) //stop this game being run from CD
- exit(-1);
-
+ // Zdebug("[%s]", lpCmdLine);
+#ifndef _SWORD2_DEBUG
+ // so cannot use Ctrl-Q from the release versions (full game or demo)
+ DisableQuitKey();
+#endif
- // Call the application "Revolution" until the resource manager is ready to dig the name out of a text file
- // See InitialiseGame() which calls InitialiseFontResourceFlags() in maketext.cpp
- // Have to do it like this since we cannot really fire up the resource manager until a window
- // has been created as any errors are displayed via a window, thus time becomes a loop.
+ // Call the application "Revolution" until the resource manager is
+ // ready to dig the name out of a text file. See InitialiseGame()
+ // which calls InitialiseFontResourceFlags() in maketext.cpp
+ //
+ // Have to do it like this since we cannot really fire up the resource
+ // manager until a window has been created as any errors are displayed
+ // via a window, thus time becomes a loop.
- Zdebug("CALLING: InitialiseWindow");
+ // Zdebug("CALLING: InitialiseWindow");
// rv = InitialiseWindow(hInstance, hPrevInstance, lpCmdLine, nCmdShow, "Revolution");
rv = RD_OK;
- Zdebug("RETURNED with rv = %.8x", rv);
- if (rv != RD_OK)
- {
+ // Zdebug("RETURNED with rv = %.8x", rv);
+
+ if (rv != RD_OK) {
// ReportDriverError(rv);
return;
}
@@ -288,7 +288,7 @@ void Sword2State::go()
_system->property(OSystem::PROP_SET_GFX_MODE, &prop);
}
- Zdebug("CALLING: InitialiseDisplay");
+ // Zdebug("CALLING: InitialiseDisplay");
_system->init_size(640, 480);
rv = InitialiseDisplay(640, 480, 8, RD_FULLSCREEN);
@@ -298,26 +298,26 @@ void Sword2State::go()
_system->property(OSystem::PROP_TOGGLE_FULLSCREEN, 0);
}
- Zdebug("RETURNED with rv = %.8x", rv);
- if (rv != RD_OK)
- {
+ // Zdebug("RETURNED with rv = %.8x", rv);
+
+ if (rv != RD_OK) {
// ReportDriverError(rv);
CloseAppWindow();
return;
}
- Zdebug("CALLING: ReadOptionSettings");
+ // Zdebug("CALLING: ReadOptionSettings");
ReadOptionSettings(); //restore the menu settings
- Zdebug("RETURNED.");
- Zdebug("CALLING: InitialiseGame");
- if (InitialiseGame())
- {
- Zdebug("RETURNED from InitialiseGame - closing game");
+ // Zdebug("RETURNED.");
+ // Zdebug("CALLING: InitialiseGame");
+
+ if (InitialiseGame()) {
+ Zdebug("RETURNED from InitialiseGame - closing game");
CloseAppWindow();
return;
}
- Zdebug("RETURNED from InitialiseGame - ok");
+ // Zdebug("RETURNED from InitialiseGame - ok");
if (_saveSlot != -1) {
if (SaveExists(_saveSlot))
@@ -330,144 +330,127 @@ void Sword2State::go()
} else
Start_game();
-
- Zdebug("CALLING: InitialiseRenderCycle");
+ // Zdebug("CALLING: InitialiseRenderCycle");
InitialiseRenderCycle();
- Zdebug("RETURNED.");
+ // Zdebug("RETURNED.");
- while (TRUE)
- {
+ while (TRUE) {
ServiceWindows();
-
- // check for events
- parseEvents();
+
#ifdef _SWORD2_DEBUG
- if (grabbingSequences && (!console_status))
+ if (grabbingSequences && !console_status)
GrabScreenShot();
#endif
- if (breakOut) // if we are closing down the game
- break; // break out of main game loop
-
-//-----
+ // if we are closing down the game, break out of main game loop
+ if (breakOut)
+ break;
#ifdef _SWORD2_DEBUG
- if (console_status)
- {
- if (One_console())
- {
+ if (console_status) {
+ if (One_console()) {
EndConsole();
UnpauseAllSound(); // see sound.cpp
}
}
#endif
- if (!console_status) //not in console mode - if the console is quit we want to get a logic cycle in before
- { //the screen is build. Mostly because of first scroll cycle stuff
+ // not in console mode - if the console is quit we want to get
+ // a logic cycle in before
+
+ if (!console_status) {
+ // the screen is build. Mostly because of first scroll
+ // cycle stuff
+
#ifdef _SWORD2_DEBUG
- if (stepOneCycle) // if we've just stepped forward one cycle while the game was paused
- {
+ // if we've just stepped forward one cycle while the
+ // game was paused
+
+ if (stepOneCycle) {
PauseGame();
- stepOneCycle=0;
+ stepOneCycle = 0;
}
#endif
- if (KeyWaiting())
- {
+
+ if (KeyWaiting()) {
ReadKey(&c);
#ifdef _SWORD2_DEBUG
- if (c==27) // ESC whether paused or not
- {
- PauseAllSound(); // see sound.cpp
- StartConsole(); // start the console
- }
- else
+ // ESC whether paused or not
+ if (c == 27) {
+ PauseAllSound(); // see sound.cpp
+ StartConsole(); // start the console
+ } else
#endif
- if (gamePaused) // if currently paused
- {
- if (toupper(c)=='P') // 'P' while paused = unpause!
- {
- UnpauseGame();
- }
+ if (gamePaused) { // if currently paused
+ if (toupper(c) == 'P') {
+ // 'P' while paused = unpause!
+ UnpauseGame();
+ }
#ifdef _SWORD2_DEBUG
- else if (toupper(c)==' ') // SPACE bar while paused = step one frame!
- {
- stepOneCycle=1; // step through one game cycle
- UnpauseGame();
- }
-#endif // _SWORD2_DEBUG
+ // frame-skipping only allowed on
+ // debug version
+
+ else if (toupper(c) == ' ') {
+ // SPACE bar while paused =
+ // step one frame!
+ stepOneCycle = 1;
+ UnpauseGame();
}
- else if (toupper(c)=='P') // 'P' while not paused = pause!
- {
+#endif
+ } else if (toupper(c) == 'P') {
+ // 'P' while not paused = pause!
PauseGame();
}
-#ifdef _SWORD2_DEBUG // frame-skipping only allowed on debug version
- else if (toupper(c)=='S') // 'S' toggles speed up (by skipping display rendering)
- {
+#ifdef _SWORD2_DEBUG
+ else if (toupper(c) == 'S') {
+ // 'S' toggles speed up (by skipping
+ // display rendering)
renderSkip = 1 - renderSkip;
}
-#endif // _SWORD2_DEBUG
+#endif
}
- if (gamePaused==0) // skip GameCycle if we're paused
- {
+ // skip GameCycle if we're paused
+ if (gamePaused == 0) {
#ifdef _SWORD2_DEBUG
- gameCycle += 1;
+ gameCycle++;
#endif
- if (GameCycle())
- break; // break out of main game loop
+ if (GameCycle()) {
+ // break out of main game loop
+ break;
+ }
}
#ifdef _SWORD2_DEBUG
- Build_debug_text(); // creates the debug text blocks
-#endif // _SWORD2_DEBUG
+ // creates the debug text blocks
+ Build_debug_text();
+#endif
}
-//-----
// James (24mar97)
#ifdef _SWORD2_DEBUG
- if ((console_status)||(renderSkip==0)||(gameCycle%4 == 0)) // if not in console & 'renderSkip' is set, only render display once every 4 game-cycles
+ // if not in console & 'renderSkip' is set, only render
+ // display once every 4 game-cycles
+
+ if (console_status || renderSkip == 0 || (gameCycle % 4) == 0)
Build_display(); // create and flip the screen
#else
- Build_display(); // create and flip the screen
-#endif // _SWORD2_DEBUG
-
+ // create and flip the screen
+ Build_display();
+#endif
}
- Close_game(); //close engine systems down
+ Close_game(); //close engine systems down
CloseAppWindow();
- return; //quit the game
+ return; //quit the game
}
-//------------------------------------------------------------------------------------
-int RunningFromCd()
-{
-/*
- char sCDName[MAX_PATH];
- char sRoot[MAX_PATH];
- DWORD dwMaxCompLength, dwFSFlags;
- GetModuleFileName(NULL , sRoot, _MAX_PATH);
- *(strchr(sRoot,'\\')+1) = '\0';
-
- if (!GetVolumeInformation(sRoot, sCDName,_MAX_PATH, NULL, &dwMaxCompLength, &dwFSFlags, NULL, 0))
- return -1;
- if (!scumm_strnicmp(sCDName,CD1_LABEL,6))
- return 1;
- if (!scumm_strnicmp(sCDName,CD2_LABEL,6))
- return 2;
-*/
- return 0;
-}
-//------------------------------------------------------------------------------------
-//------------------------------------------------------------------------------------
-//------------------------------------------------------------------------------------
+void Sword2State::Start_game(void) { //Tony29May97
+ // boot the game straight into a start script
-//------------------------------------------------------------------------------------
-void Sword2State::Start_game(void) //Tony29May97
-{
-//boot the game straight into a start script
int screen_manager_id;
Zdebug("Start_game() STARTING:");
@@ -480,85 +463,104 @@ void Sword2State::Start_game(void) //Tony29May97
// FIXME this could be validated against startup.inf for valid numbers
// to stop people shooting themselves in the foot
+
if (_bootParam != 0)
screen_manager_id = _bootParam;
- char *raw_script;
- char *raw_data_ad;
- uint32 null_pc=1; // the required start-scripts are both script #1 in the respective ScreenManager objects
+ char *raw_script;
+ char *raw_data_ad;
+
+ // the required start-scripts are both script #1 in the respective
+ // ScreenManager objects
+
+ uint32 null_pc = 1;
+
+ // open george object, ready for start script to reference
+ raw_data_ad = (char *) res_man.Res_open(8);
- raw_data_ad = (char*) (res_man.Res_open(8)); // open george object, ready for start script to reference
- raw_script = (char*) (res_man.Res_open(screen_manager_id)); // open the ScreenManager object
+ // open the ScreenManager object
+ raw_script = (char *) res_man.Res_open(screen_manager_id);
- RunScript ( raw_script, raw_data_ad, &null_pc ); // run the start script now (because no console)
+ // run the start script now (because no console)
+ RunScript(raw_script, raw_data_ad, &null_pc);
- res_man.Res_close(screen_manager_id); // close the ScreenManager object
- res_man.Res_close(8); // close george
+ // close the ScreenManager object
+ res_man.Res_close(screen_manager_id);
+
+ // close george
+ res_man.Res_close(8);
Zdebug("Start_game() DONE.");
}
-//------------------------------------------------------------------------------------
-//------------------------------------------------------------------------------------
-void PauseGame(void) // James17jun97
-{
-// uint8 *text;
-// text = FetchTextLine( res_man.Res_open(3258), 449 ); // open text file & get the line "PAUSED"
-// pause_text_bloc_no = Build_new_block(text+2, 320, 210, 640, 184, RDSPR_TRANS+RDSPR_DISPLAYALIGN, SPEECH_FONT_ID, POSITION_AT_CENTRE_OF_BASE);
-// res_man.Res_close(3258); // now ok to close the text file
+void PauseGame(void) { // James17jun97
+ // uint8 *text;
+
+ // open text file & get the line "PAUSED"
+ // text = FetchTextLine(res_man.Res_open(3258), 449);
+ // pause_text_bloc_no = Build_new_block(text + 2, 320, 210, 640, 184, RDSPR_TRANS | RDSPR_DISPLAYALIGN, SPEECH_FONT_ID, POSITION_AT_CENTRE_OF_BASE);
+ // now ok to close the text file
+ // res_man.Res_close(3258);
- //---------------------------
// don't allow Pause while screen fading or while black (James 03sep97)
- if(GetFadeStatus()!=RDFADE_NONE)
+ if (GetFadeStatus() != RDFADE_NONE)
return;
- //---------------------------
PauseAllSound();
-//make a normal mouse
+ //make a normal mouse
ClearPointerText();
-// mouse_mode=MOUSE_normal;
- SetLuggageAnim(NULL, 0); //this is the only place allowed to do it this way
- Set_mouse(0); // blank cursor
- mouse_touching=1; //forces engine to choose a cursor
-
- if (current_graphics_level==3) // if level at max
- {
- UpdateGraphicsLevel(2); // turn down because palette-matching won't work when dimmed
- graphics_level_fudged=1;
- }
- if (stepOneCycle==0) // don't dim it if we're single-stepping through frames
- {
- DimPalette(); // dim the palette during the pause (James26jun97)
+ // mouse_mode=MOUSE_normal;
+
+ //this is the only place allowed to do it this way
+ SetLuggageAnim(NULL, 0);
+
+ // blank cursor
+ Set_mouse(0);
+
+ // forces engine to choose a cursor
+ mouse_touching = 1;
+
+ // if level at max, turn down because palette-matching won't work
+ // when dimmed
+
+ if (current_graphics_level == 3) {
+ UpdateGraphicsLevel(2);
+ graphics_level_fudged = 1;
}
- gamePaused=1;
+ // don't dim it if we're single-stepping through frames
+ // dim the palette during the pause (James26jun97)
+
+ if (stepOneCycle == 0)
+ DimPalette();
+
+ gamePaused = 1;
}
-//------------------------------------------------------------------------------------
-void UnpauseGame(void) // James17jun97
-{
-// Kill_text_bloc(pause_text_bloc_no); // removed "PAUSED" from screen
- if ((OBJECT_HELD)&&(real_luggage_item))
+void UnpauseGame(void) { // James17jun97
+ // removed "PAUSED" from screen
+ // Kill_text_bloc(pause_text_bloc_no);
+
+ if (OBJECT_HELD && real_luggage_item)
Set_luggage(real_luggage_item);
UnpauseAllSound();
- SetFullPalette(0xffffffff); // put back game screen palette; see Build_display.cpp (James26jun97)
+ // put back game screen palette; see Build_display.cpp (James26jun97)
+ SetFullPalette(0xffffffff);
- if (graphics_level_fudged) // if level at max
- {
- UpdateGraphicsLevel(3); // turn up again
- graphics_level_fudged=0;
+ // If graphics level at max, turn up again
+ if (graphics_level_fudged) {
+ UpdateGraphicsLevel(3);
+ graphics_level_fudged = 0;
}
- gamePaused=0;
- unpause_zone=2;
+ gamePaused = 0;
+ unpause_zone = 2;
- if ((!mouse_status)||(choosing)) //if mouse is about or we're in a chooser menu
+ // if mouse is about or we're in a chooser menu
+ if (!mouse_status || choosing)
Set_mouse(NORMAL_MOUSE_ID);
}
-//------------------------------------------------------------------------------------
-//------------------------------------------------------------------------------------
-
diff --git a/sword2/sword2.h b/sword2/sword2.h
index 4c39b114b4..f3b45b24ee 100644
--- a/sword2/sword2.h
+++ b/sword2/sword2.h
@@ -20,23 +20,23 @@
#ifndef _SWORD2
#define _SWORD2
-//#include "src\driver96.h"
#include "driver/d_sound.h"
+// Bodge for PCF76 version so that their demo CD can be labelled "PCF76"
+// rather than "RBSII1"
-#ifdef _PCF76 // Bodge for PCF76 version so that their demo CD can be labelled "PCF76" rather than "RBSII1"
+#ifdef _PCF76
#define CD1_LABEL "PCF76"
#else
#define CD1_LABEL "RBSII1"
#endif
+#define CD2_LABEL "RBSII2"
-#define CD2_LABEL "RBSII2"
+void Close_game();
-void Close_game(); //Tony11Oct96
-
-void PauseGame(void); // James17jun97
-void UnpauseGame(void); // James17jun97
+void PauseGame(void);
+void UnpauseGame(void);
#define HEAD_LEN 8
@@ -49,6 +49,7 @@ enum BSGameId {
};
// TODO move stuff into class
+
class Sword2State : public Engine {
public:
Sword2State(GameDetector *detector, OSystem *syst);
@@ -61,6 +62,7 @@ public:
byte _gameId;
char *_game_name; // target name for saves
Sword2Sound *_sound;
+
private:
bool _quit;
uint32 _bootParam;