aboutsummaryrefslogtreecommitdiff
path: root/sword2/console.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sword2/console.cpp')
-rw-r--r--sword2/console.cpp1687
1 files changed, 725 insertions, 962 deletions
diff --git a/sword2/console.cpp b/sword2/console.cpp
index 6173371317..ef1835acf2 100644
--- a/sword2/console.cpp
+++ b/sword2/console.cpp
@@ -20,14 +20,12 @@
#include "stdafx.h"
#include "driver/driver96.h"
-uint32 console_status=0; //0 off // LEFT IN RELEASE VERSION
-
+uint32 console_status = 0; //0 off // LEFT IN RELEASE VERSION
#ifdef _SWORD2_DEBUG
-//-----------------------------------------------------------------------------------------------------------------------
-//its the console! <great>
-//-----------------------------------------------------------------------------------------------------------------------
+// its the console! <great>
+
#include <ctype.h>
#include <stdarg.h>
#include <stdio.h>
@@ -38,11 +36,11 @@ uint32 console_status=0; //0 off // LEFT IN RELEASE VERSION
#include "console.h"
#include "debug.h"
#include "defs.h"
-#include "events.h" // so we can disaply the event list in Con_display_events()
+#include "events.h" // so we can display the event list in Con_display_events()
#include "header.h"
#include "layers.h"
#include "logic.h"
-#include "maketext.h" // for InitialiseFontResourceFlags()
+#include "maketext.h" // for InitialiseFontResourceFlags()
#include "mouse.h"
#include "mem_view.h"
#include "memory.h"
@@ -53,1146 +51,932 @@ uint32 console_status=0; //0 off // LEFT IN RELEASE VERSION
#include "sword2.h"
#include "time.h"
-//-----------------------------------------------------------------------------------------------------------------------
-// local function prototypes
-
-uint32 Parse_user_input(void); // Tony13Aug96
-void Clear_console_line(void); // Tony13Aug96
-void Con_help(void); // Tony13Aug96
-
-void Con_colour_block(int x, int width, int height, uint32 pen, uint32 paper, uint8 *sprite_data_ad);
-void Con_print(uint8 *ascii, uint32 pen, uint32 paper);
-uint32 Tconsole(uint32 mode); // Tony9Oct96
-
-void Con_list_savegames(void); // James05feb97
-void Con_save_game(int total_commands, uint8 *slotString, uint8 *description); // James05feb97
-void Con_restore_game(int total_commands, uint8 *slotString); // James05feb97
-uint8 Is_number(uint8 *ascii); // James05feb97
-void Con_start_timer(int total_commands, uint8 *slotString); // Paul12feb97
-void ShowVar(uint8 *varNoPtr); // James19mar97
-void HideVar(uint8 *varNoPtr); // James19mar97
-void Con_display_version(void); // James27mar97
+uint32 Parse_user_input(void);
+void Clear_console_line(void);
+void Con_help(void);
-void Var_check(uint8 *pointer); //Tony8Jan97
-void Var_set(uint8 *pointer, uint8 *p2); //Tony8Jan97
+void Con_colour_block(int x, int width, int height, uint32 pen, uint32 paper, uint8 *sprite_data_ad);
+void Con_print(uint8 *ascii, uint32 pen, uint32 paper);
+uint32 Tconsole(uint32 mode);
-void Con_display_events(); // (James11july97)
+void Con_list_savegames(void);
+void Con_save_game(int total_commands, uint8 *slotString, uint8 *description);
+void Con_restore_game(int total_commands, uint8 *slotString);
+uint8 Is_number(uint8 *ascii);
+void Con_start_timer(int total_commands, uint8 *slotString);
+void ShowVar(uint8 *varNoPtr);
+void HideVar(uint8 *varNoPtr);
+void Con_display_version(void);
+void Var_check(uint8 *pointer);
+void Var_set(uint8 *pointer, uint8 *p2);
-//-----------------------------------------------------------------------------------------------------------------------
-uint8 wantSfxDebug=0; // sfx debug file enabled/disabled from console
-//-----------------------------------------------------------------------------------------------------------------------
+void Con_display_events();
+uint8 wantSfxDebug = 0; // sfx debug file enabled/disabled from console
#define MAX_CONSOLE_BUFFER 70
#define MAX_CONSOLE_PARAMS 5
-#define CON_PEN 187
+#define CON_PEN 187
-#define VK_TAB 0x09
-#define VK_RETURN 0x0D
+#define VK_TAB 0x09
+#define VK_RETURN 0x0D
-char console_buffer[MAX_CONSOLE_BUFFER];
+char console_buffer[MAX_CONSOLE_BUFFER];
-char last_command[MAX_CONSOLE_BUFFER]; // James 03apr97
-int last_command_len=0; // James 03apr97
-
-uint8 grabbingSequences=0;
-
-int console_pos=0; //cursor position within the typed line
-
-int console_mode=0; //0 is the base command line
- //1 means only parse for yes or no commands
- //1 on
+char last_command[MAX_CONSOLE_BUFFER];
+int last_command_len = 0;
+uint8 grabbingSequences = 0;
+int console_pos = 0;
+int console_mode = 0; // 0 is the base command line
+ // 1 means only parse for yes or no commands
#define TOTAL_CONSOLE_COMMANDS 47
-uint8 commands[TOTAL_CONSOLE_COMMANDS][9]= // note '9' is max command length including null-terminator
-{
- "HELP", // 0
- "MEM", // 1
- "Q", // 2
- "TONY", // 3
- "YES", // 4
- "NO", // 5
- "RES", // 6
- "STARTS", // 7
- "START", // 8
- "INFO", // 9
- "WALKGRID", // 10
- "MOUSE", // 11
- "PLAYER", // 12
- "RESLOOK", // 13
- "CUR", // 14
- "RUNLIST", // 15
- "KILL", // 16
- "NUKE", // 17
- "S", // 18
- "VAR", // 19
- "RECT", // 20
- "CLEAR", // 21
- "DEBUGON", // 22
- "DEBUGOFF", // 23
- "SAVEREST", // 24
- "SAVES", // 25
- "SAVE", // 26
- "RESTORE", // 27
- "BLTFXON", // 28
- "BLTFXOFF", // 29
- "TIMEON", // 30
- "TIMEOFF", // 31
- "TEXT", // 32
- "SHOWVAR", // 33
- "HIDEVAR", // 34
- "VERSION", // 35
- "SOFT", // 36
- "HARD", // 37
- "ANIMTEST", // 38
- "TEXTTEST", // 39
- "LINETEST", // 40
- "GRAB", // 41
- "EVENTS", // 42
- "SFX", // 43
- "ENGLISH", // 44
- "FINNISH", // 45
- "POLISH" // 46
+// note '9' is max command length including null-terminator
+uint8 commands[TOTAL_CONSOLE_COMMANDS][9] = {
+ "HELP", // 0
+ "MEM", // 1
+ "Q", // 2
+ "TONY", // 3
+ "YES", // 4
+ "NO", // 5
+ "RES", // 6
+ "STARTS", // 7
+ "START", // 8
+ "INFO", // 9
+ "WALKGRID", // 10
+ "MOUSE", // 11
+ "PLAYER", // 12
+ "RESLOOK", // 13
+ "CUR", // 14
+ "RUNLIST", // 15
+ "KILL", // 16
+ "NUKE", // 17
+ "S", // 18
+ "VAR", // 19
+ "RECT", // 20
+ "CLEAR", // 21
+ "DEBUGON", // 22
+ "DEBUGOFF", // 23
+ "SAVEREST", // 24
+ "SAVES", // 25
+ "SAVE", // 26
+ "RESTORE", // 27
+ "BLTFXON", // 28
+ "BLTFXOFF", // 29
+ "TIMEON", // 30
+ "TIMEOFF", // 31
+ "TEXT", // 32
+ "SHOWVAR", // 33
+ "HIDEVAR", // 34
+ "VERSION", // 35
+ "SOFT", // 36
+ "HARD", // 37
+ "ANIMTEST", // 38
+ "TEXTTEST", // 39
+ "LINETEST", // 40
+ "GRAB", // 41
+ "EVENTS", // 42
+ "SFX", // 43
+ "ENGLISH", // 44
+ "FINNISH", // 45
+ "POLISH" // 46
};
-mem *console_sprite;
-uint32 con_y;
-uint32 con_depth;
-uint32 con_width;
-uint32 con_chr_height;
-
-#define CON_lines 20 //10 lines deep
-
-//-----------------------------------------------------------------------------------------------------------------------
-void Init_console(void) //Tony9Sept96
-{
-//grab the memory for the console sprite
+mem *console_sprite;
+uint32 con_y;
+uint32 con_depth;
+uint32 con_width;
+uint32 con_chr_height;
- uint32 j;
- uint8 *ad;
- uint8 white[4] = {255,255,255,0}; // Chris 11Apr97
+#define CON_lines 20 // 10 lines deep
+void Init_console(void) {
+ // grab the memory for the console sprite
- con_chr_height=12;
- con_width=screenWide; //max across
+ uint8 *ad;
+ uint8 white[4] = { 255, 255, 255, 0 };
- BS2_SetPalette(CON_PEN, 1, white, RDPAL_INSTANT); // Force a palatte for the console. Chris 11Apr97
+ con_chr_height = 12;
+ con_width = screenWide; //max across
- console_sprite = Twalloc(con_width*(CON_lines*con_chr_height), MEM_float, UID_con_sprite);
-
- con_depth= CON_lines*con_chr_height;
- con_y= 399-con_depth;
+ // Force a palatte for the console.
+ BS2_SetPalette(CON_PEN, 1, white, RDPAL_INSTANT);
+ console_sprite = Twalloc(con_width * (CON_lines * con_chr_height), MEM_float, UID_con_sprite);
+ if (!console_sprite) {
+ ExitWithReport("Init_console Talloc fail");
+ }
-//clear the buffer for a nice fresh start
- ad=console_sprite->ad;
- for (j=0;j<con_width*(CON_lines*con_chr_height);j++)
- *(ad+j)=0;
+ con_depth = CON_lines * con_chr_height;
+ con_y = 399 - con_depth;
+ // clear the buffer for a nice fresh start
- if (!console_sprite)
- {
- Zdebug("Init_console Talloc fail");
- ExitWithReport("Init_console Talloc fail [file=%s line=%u]",__FILE__,__LINE__);
- }
+ memset(console_sprite->ad, 0, con_width * CON_lines * con_chr_height);
- Zdebug("console height %d, y %d", con_depth, con_y);
+ debug(5, "console height %d, y %d", con_depth, con_y);
//first time in message
Con_display_version();
}
-//-----------------------------------------------------------------------------------------------------------------------
-void StartConsole(void) //Tony12Aug96
-{
-//start console up and restart new line
-//can ne called for newline
-
- int j;
-
- console_pos=0; //start of new line
+void StartConsole(void) {
+ // start console up and restart new line
+ // can ne called for newline
- for (j=0;j<MAX_CONSOLE_BUFFER;j++) //we need to clear the whole buffer - else the cursor overwrites the end 0
- console_buffer[j]=0;
+ console_pos = 0; // start of new line
+ //we need to clear the whole buffer - else the cursor overwrites the
+ // end 0
- console_status=1; //on
+ console_status = 1; // on
}
-//-----------------------------------------------------------------------------------------------------------------------
-void EndConsole(void) //Tony9Oct96
-{
- console_status=0; //off
+void EndConsole(void) {
+ console_status = 0; // off
}
-//-----------------------------------------------------------------------------------------------------------------------
-uint32 Tconsole(uint32 mode) //Tony9Oct96
-{
-//call from anywhere
-//returns a positive value of the token typed or 0 for windows quiting - the caller should drop back
-
- uint32 ret,breakOut=0;
-
-
-
+uint32 Tconsole(uint32 mode) {
+ // call from anywhere
+ // returns a positive value of the token typed or 0 for windows
+ // quiting - the caller should drop back
+ uint32 ret, breakOut = 0;
-
- console_mode=mode; //set command frame
-
+ console_mode = mode; //set command frame
StartConsole();
- while (1)
- {
+ while (1) {
ServiceWindows();
if (breakOut)
- {
break;
- }
-//-----
- if (ret = One_console())
- { EndConsole();
- return(ret);
+ if ((ret = One_console()) != 0) {
+ EndConsole();
+ return ret;
}
-//-----
- Build_display(); //create and flip the screen
- }
-
+ Build_display(); // create and flip the screen
+ }
-//a windows message is throwing us out of here
+ // a windows message is throwing us out of here
- EndConsole(); //switch off drawing
- return(0);
+ EndConsole(); // switch off drawing
+ return 0;
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Scroll_console(void) //Tony13Aug96
-{
-//scroll the console sprite up 12 pixels
-
- uint32 *to_buffer;
- uint32 *from_buffer;
- int x;
+void Scroll_console(void) {
+ // scroll the console sprite up 12 pixels
- x=((con_depth-con_chr_height)*640)/4; //number of dwords
+ uint32 *to_buffer;
+ uint32 *from_buffer;
- to_buffer= (uint32 *) console_sprite->ad; //base of console sprite
- from_buffer= to_buffer+((con_chr_height*640)/4);
+ // number of dwords
+ x = ((con_depth - con_chr_height) * 640) / 4;
- while(x--)
- *(to_buffer++)=*(from_buffer++);
+ to_buffer= (uint32 *) console_sprite->ad;
+ from_buffer = to_buffer + ((con_chr_height * 640) / 4);
+ memmove(to_buffer, from_buffer, (con_depth - con_chr_heigth) * 640);
-
- Clear_console_line(); //blank the on-coming bottom line
+ // blank the on-coming bottom line
+ Clear_console_line();
}
-//-----------------------------------------------------------------------------------------------------------------------
-//-----------------------------------------------------------------------------------------------------------------------
-void Clear_console_line(void) //Tony13Aug96
-{
-//blank the bottom line
- uint32 *pbuffer;
- uint32 x;
+void Clear_console_line(void) {
+ // blank the bottom line
+ uint32 *pbuffer;
- pbuffer= (uint32 *) console_sprite->ad; //base of our off-screen back buffer
- pbuffer+= ((con_depth-con_chr_height)*con_width/4); //index to console text position
+ //base of our off-screen back buffer
+ pbuffer= (uint32 *) console_sprite->ad;
- for (x=0;x<con_chr_height*(con_width/4);x++) //clear the bottom text line
- *(pbuffer+x)=0;
+ //index to console text position
+ pbuffer += ((con_depth-con_chr_height) * con_width / 4);
+
+ // clear the bottom text line
+ memset(pbuffer, 0, con_chr_height * con_width);
}
-//-----------------------------------------------------------------------------------------------------------------------
-//-----------------------------------------------------------------------------------------------------------------------
-//-----------------------------------------------------------------------------------------------------------------------
-void Print_to_console(const char *format,...) //Tony13Aug96
-{
-//print a NULL terminated string of ascii to the next console line
-//we can assume that the user has just entered a command by pressing return - which means we're on a clean line
-//so output the line and line feed
-
- va_list arg_ptr; // Variable argument pointer
- char buf[150];
- va_start(arg_ptr,format);
- _vsnprintf( buf, 150, format, arg_ptr);
+void Print_to_console(const char *format, ...) {
+ // print a NULL terminated string of ascii to the next console line
+ // we can assume that the user has just entered a command by pressing
+ // return - which means we're on a clean line so output the line and
+ // line feed
- Con_print( (uint8*)buf, 2, 0);
- Scroll_console(); //line feed
+ va_list arg_ptr;
+ char buf[150];
+ va_start(arg_ptr,format);
+ _vsnprintf(buf, 150, format, arg_ptr);
+ Con_print((uint8 *) buf, 2, 0);
+ Scroll_console();
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Temp_print_to_console(const char *format,...) //Tony13Aug96
-{
-//print a NULL terminated string of ascii to the next console line
-//we can assume that the user has just entered a command by pressing return - which means we're on a clean line
-//so output the line and line feed
- va_list arg_ptr; // Variable argument pointer
- char buf[150];
+void Temp_print_to_console(const char *format, ...) {
+ // print a NULL terminated string of ascii to the next console line
+ // we can assume that the user has just entered a command by pressing
+ // return - which means we're on a clean line so output the line and
+ // line feed
- va_start(arg_ptr,format);
- _vsnprintf( buf, 150, format, arg_ptr);
+ va_list arg_ptr; // Variable argument pointer
+ char buf[150];
- Con_print( (uint8*)buf, 2, 0);
+ va_start(arg_ptr,format);
+ _vsnprintf(buf, 150, format, arg_ptr);
+ Con_print((uint8 *) buf, 2, 0);
}
-//-----------------------------------------------------------------------------------------------------------------------
-uint32 One_console(void) //Tony12Aug96
-{
-//its the console command line system
-//do an update - check keys and flash cursor and so on
- char c;
- static int flash=0; //controls the flashing cursor rate
- uint32 res;
+uint32 One_console(void) {
+ // its the console command line system
+ // do an update - check keys and flash cursor and so on
- if (KeyWaiting())
- {
- ReadKey(&c);
+ char c;
+ static int flash = 0; //controls the flashing cursor rate
+ uint32 res;
+ if (KeyWaiting()) {
+ ReadKey(&c);
- if (!c) //escape sequences
- {
- }
- else if (c==VK_TAB) // UP arrow
- {
- if (last_command_len) // if anything stored in buffer
- {
+ if (c == VK_TAB) {
+ if (last_command_len) { // if anything stored in buffer
// retrieve 'last_command' buffer
- memset (console_buffer, 0, MAX_CONSOLE_BUFFER); // first clear the entire current buffer
- memcpy (console_buffer, last_command, last_command_len); // now copy in the last command
+ // first clear the entire current buffer
+ memset (console_buffer, 0, MAX_CONSOLE_BUFFER);
+
+ // now copy in the last command
+ memcpy (console_buffer, last_command, last_command_len);
console_pos = last_command_len;
}
- }
- else if (c==VK_RETURN) //RETurn
- {
- console_buffer[console_pos]=' '; //by putting a space in we'll always have a chr$ in the buffer
+ } else if (c == VK_RETURN) {
+ // by putting a space in we'll always have a chr$ in
+ // the buffer
+ console_buffer[console_pos] = ' ';
Clear_console_line();
Print_to_console(console_buffer);
-// parse the input I guess
+ // parse the input I guess
+
+ if (console_pos) {
+ // save to 'last_command' buffer, in case need
+ // to repeat same command
- if (console_pos)
- {
- // save to 'last_command' buffer, in case need to repeat same command (James03apr97)
- memcpy (last_command, console_buffer, console_pos); // get a copy of the current command
- last_command_len = console_pos; // get a copy of the length as well
+ // get a copy of the current command, and its
+ // length
+ memcpy (last_command, console_buffer, console_pos);
+ last_command_len = console_pos;
res = Parse_user_input();
- if (res)
- return(res);
+ if (res)
+ return res;
}
- StartConsole(); //reset buffer
- }
- else if (c==8) //delete
- {
- if (console_pos)
- {
- console_buffer[console_pos]=0; //delete cursor chr$
+ StartConsole(); // reset buffer
+ } else if (c == 8) {
+ if (console_pos) {
+ // delete cursor chr$
+ console_buffer[console_pos] = 0;
console_pos--;
console_buffer[console_pos]=0;
}
- }
- else if ((c<32)||(c>'z'))
- Zdebug("console ignoring key - %d", c);
- else
- {
- if (console_pos<(MAX_CONSOLE_BUFFER-1)) //less one to leave room for the cursor
- console_buffer[console_pos++]=c;
-
- else //end of line has been reached, so keep replacing last letter
- console_buffer[console_pos-1]=c; //replace
+ } else if (c < 32 || c > 'z')
+ debug(5, "console ignoring key - %d", c);
+ else {
+ // less one to leave room for the cursor
+ if (console_pos < MAX_CONSOLE_BUFFER - 1) {
+ console_buffer[console_pos++] = c;
+ } else {
+ // end of line has been reached, so keep
+ // replacing last letter
+ console_buffer[console_pos - 1] = c;
+ }
}
}
-
flash++;
- if (flash<7)
- console_buffer[console_pos]='_';
- else
- console_buffer[console_pos]=' '; //by putting a space in we'll always have a chr$ in the buffer
- if (flash==14)
- flash=0;
+ if (flash < 7)
+ console_buffer[console_pos] = '_';
+ else
+ console_buffer[console_pos] = ' ';
+ if (flash == 14)
+ flash = 0;
+ // update the real screen - done every cycle to keep the cursor
+ // flashing
-//update the real screen - done every cycle to keep the cursor flashing
Clear_console_line();
- Con_print( (uint8*)console_buffer, 2, 0);
+ Con_print((uint8 *) console_buffer, 2, 0);
- return(0);
+ return 0;
}
-//-----------------------------------------------------------------------------------------------------------------------
-uint32 Parse_user_input(void) //Tony13Aug96
-{
-//pressed return and now we need to analyse whats been written and call up the relevent commands
-
- uint8 input[MAX_CONSOLE_PARAMS][MAX_CONSOLE_BUFFER];
- int i,j,total_commands=0;
- int index=0;
- uint32 rv; // for driver return value
- uint8 pal[4]={255,255,255,0};
+uint32 Parse_user_input(void) {
+ // pressed return and now we need to analyse whats been written and
+ // call up the relevent commands
+ uint8 input[MAX_CONSOLE_PARAMS][MAX_CONSOLE_BUFFER];
+ int i, j, total_commands = 0;
+ int index = 0;
+ uint32 rv;
+ uint8 pal[4] = { 255, 255, 255, 0 };
-
-//quick check for numbers here
- if (!isalpha(console_buffer[0]))
- {
- Print_to_console("Eh?"); //print the standard error message and quit
+ // quick check for numbers here
+ if (!isalpha(console_buffer[0])) {
+ Print_to_console("Eh?");
return(0);
}
-
-
- j=0; //current command
- do
- {
- i=0;
+ j = 0;
+ do {
+ i = 0;
do
- input[j][i++]=toupper(console_buffer[index++]);
- while( isgraph(console_buffer[index]) );
+ input[j][i++] = toupper(console_buffer[index++]);
+ while (isgraph(console_buffer[index]));
- input[j][i]=0; //NULL terminate
+ input[j][i] = 0;
j++;
total_commands++;
- if (index==console_pos)
+ if (index == console_pos)
break;
do
index++;
- while( console_buffer[index]==' ' );
- }
- while(j<MAX_CONSOLE_PARAMS); //only parse first 5 params
+ while (console_buffer[index] == ' ');
+ } while (j < MAX_CONSOLE_PARAMS);
+ // try to find the first word in the commands base
-
-
-//try to find the first word in the commands base
-
- for (j=0;j<TOTAL_CONSOLE_COMMANDS;j++)
- {
- i=0;
- while((input[0][i]==commands[j][i])&&(input[0][i]))
+ for (j = 0; j < TOTAL_CONSOLE_COMMANDS; j++) {
+ i = 0;
+ while (input[0][i] == commands[j][i] && input[0][i])
i++;
- if ((!input[0][i])&&(!commands[j][i])) //got to the end of an entry - so must have matched the whole word
- {
- switch(console_mode) //the console mode denotes the scope of the commands accepted 0 is the base mode
- { //external console commands may only be requiring a yes/no input for example
- //a different scope would only accept yes and no and drop back out when found... see?
-
- case 0: //base command line
- switch(j)
- {
- //---------------------------------
- case 0: // HELP
- Con_help();
- return(0);
- break;
- //---------------------------------
- case 1: // MEM
- Console_mem_display();
- return(0);
- break;
- //---------------------------------
- case 2: // Q
- return(1); //quit the console
- break;
- //---------------------------------
- case 3: // TONY
- Print_to_console("What about him?");
- return(0);
- break;
- //---------------------------------
- case 6: // RES
- res_man.Print_console_clusters();
- return(0);
- break;
- //---------------------------------
- case 7: // STARTS
- Con_print_start_menu();
- return(0);
- break;
- //---------------------------------
- case 8: // START
- Con_start(&input[1][0]);
- BS2_SetPalette(187, 1, pal, RDPAL_INSTANT); //force the palette
- return(0);
- break;
- //---------------------------------
- case 9: // INFO
- displayDebugText = 1-displayDebugText;
- if (displayDebugText)
- Print_to_console("info text on");
- else
- Print_to_console("info text off");
- return(0);
- break;
- //---------------------------------
- case 10: // WALKGRID
- displayWalkGrid = 1-displayWalkGrid;
- if (displayWalkGrid)
- Print_to_console("walk-grid display on");
- else
- Print_to_console("walk-grid display off");
- return(0);
- break;
- //---------------------------------
- case 11: // MOUSE
- displayMouseMarker = 1-displayMouseMarker;
- if (displayMouseMarker)
- Print_to_console("mouse marker on");
- else
- Print_to_console("mouse marker off");
- return(0);
- break;
- //---------------------------------
- case 12: // PLAYER
- displayPlayerMarker = 1-displayPlayerMarker;
- if (displayPlayerMarker)
- Print_to_console("player feet marker on");
- else
- Print_to_console("player feet marker off");
- return(0);
- break;
- //---------------------------------
- case 13: // RESLOOK
- res_man.Examine_res(&input[1][0]);
- return(0);
- break;
- //---------------------------------
- case 14: // CUR
- Print_current_info();
- return(0);
- break;
- //---------------------------------
- case 15: // RUNLIST
- LLogic.Examine_run_list();
- return(0);
- break;
- //---------------------------------
- case 16: // KILL
- res_man.Kill_res(&input[1][0]);
- return(0);
- break;
- //---------------------------------
- case 17: // NUKE
- Print_to_console("killing all resources except variable file & player object...");
- res_man.Kill_all_res(1); // '1' means we want output to console
- return(0);
- break;
- //---------------------------------
- case 18: // S (same as START)
- Con_start(&input[1][0]);
- BS2_SetPalette(187, 1, pal, RDPAL_INSTANT); //force the palette
- return(0);
- break;
- //---------------------------------
- case 19: // VAR
- if (total_commands==2)
- Var_check(&input[1][0]);
- else Var_set(&input[1][0], &input[2][0]);
-
- return(0);
- break;
- //---------------------------------
- case 20: // RECT
- definingRectangles = 1-definingRectangles; // switch on/off
- if (definingRectangles)
- Print_to_console("mouse rectangles enabled");
- else
- Print_to_console("mouse rectangles disabled");
- draggingRectangle=0; // reset (see debug.cpp & mouse.cpp)
- return(0);
- break;
- //---------------------------------
- case 21: // CLEAR
- Print_to_console("killing all object resources except player...");
- res_man.Kill_all_objects(1); // '1' means we want output to console
- return(0);
- break;
- //---------------------------------
- case 22: // DEBUGON
- displayDebugText = 1;
- displayWalkGrid = 1;
- displayMouseMarker = 1;
- displayPlayerMarker = 1;
- displayTextNumbers = 1;
-
- Print_to_console("enabled all on-screen debug info");
- return(0);
- break;
- //---------------------------------
- case 23: // DEBUGOFF
- displayDebugText = 0;
- displayWalkGrid = 0;
- displayMouseMarker = 0;
- displayPlayerMarker = 0;
- displayTextNumbers = 0;
-
- definingRectangles = 0;
- draggingRectangle = 0;
-
- Print_to_console("disabled all on-screen debug info");
- return(0);
- break;
- //---------------------------------
- case 24: // SAVEREST
- testingSnR = 1-testingSnR;
- if (testingSnR)
- Print_to_console("Enabled S&R logic_script stability checking");
- else
- Print_to_console("Disabled S&R logic_script stability checking");
- return(0);
- break;
- //---------------------------------
- case 25: // SAVES (James05feb97)
- Print_to_console("Savegames:");
- Con_list_savegames();
- return(0);
- break;
- //---------------------------------
- case 26: // SAVE <slotNo> <description> (James05feb97)
- Con_save_game(total_commands, &input[1][0], &input[2][0]);
- return(0);
- break;
- //---------------------------------
- case 27: // RESTORE <slotNo> <description> (James05feb97)
- Con_restore_game(total_commands, &input[1][0]);
- return(1); //quit the console
- break;
- //---------------------------------
- case 28: // BLTFXON (Paul12feb97)
- SetBltFx();
- Print_to_console("blit fx enabled");
- return(0);
- break;
- //---------------------------------
- case 29: // BLTFXOFF (Paul12feb97)
- ClearBltFx();
- Print_to_console("blit fx disabled");
- return(0);
- break;
- //---------------------------------
- case 30: // TIMEON (Paul12feb97)
- Con_start_timer(total_commands, &input[1][0]);
- Print_to_console("timer display on");
- return(0);
- break;
- //---------------------------------
- case 31: // TIMEOFF (Paul12feb97)
- displayTime = 0;
- Print_to_console("timer display off");
- return(0);
- break;
- //---------------------------------
- case 32: // TEXT (James25feb97)
- displayTextNumbers = 1-displayTextNumbers;
- if (displayTextNumbers)
- Print_to_console("text numbers on");
- else
- Print_to_console("text numbers off");
- return(0);
- break;
- //---------------------------------
- case 33: // SHOWVAR <varNo> (James19mar97)
- ShowVar(&input[1][0]); // add variable to watch-list
- return(0);
- break;
- //---------------------------------
- case 34: // HIDEVAR <varNo> (James19mar97)
- HideVar(&input[1][0]); // remove variable from watch-list
- return(0);
- break;
- //---------------------------------
- case 35: // VERSION (James21mar97)
- Con_display_version();
- return(0);
- break;
- //---------------------------------
- case 36: // SOFT (James07apr97)
- if (RenderSoft())
- Print_to_console("Software Rendering already enabled");
- else
- {
- Print_to_console("Software Rendering enabled");
- CloseBackgroundLayer(); // unlock from memory (because used in hardware rendering)
- }
- return(0);
- break;
- //---------------------------------
- case 37: // HARD (James07apr97)
- rv = RenderHard();
-
- if (rv==RDERR_NOHARDWARE)
- Print_to_console("Hardware Rendering not available");
- else if (rv==RDERR_ALREADYON)
- Print_to_console("Hardware Rendering already enabled");
- else
- Print_to_console("Hardware Rendering enabled");
- return(0);
- break;
- //---------------------------------
- case 38: // ANIMTEST
- Con_start((uint8*)"32"); // automatically do "s 32" to run the text/speech testing start-script
-
- Print_to_console("Setting flag 'system_testing_anims'");
- Var_set((uint8*)"912", &input[1][0]); // same as typing "VAR 912 <value>" at the console
-
- return(1);
- break;
- //---------------------------------
- case 39: // TEXTTEST
- Con_start((uint8*)"33"); // automatically do "s 33" to run the text/speech testing start-script
-
- Print_to_console("Setting flag 'system_testing_text'");
- Var_set((uint8*)"1230", &input[1][0]); // same as typing "VAR 1230 <value>" at the console
-
- displayTextNumbers=1;
- Print_to_console("text numbers on");
-
- return(1);
- break;
- //---------------------------------
- case 40: // LINETEST
- Con_start((uint8*)"33"); // automatically do "s 33" to run the text/speech testing start-script
-
- Print_to_console("Setting var 1230 (system_testing_text):");
- Var_set((uint8*)"1230", &input[1][0]); // same as typing "VAR 1230 <value>" at the console
-
- Print_to_console("Setting var 1264 (system_test_line_no):");
- Var_set((uint8*)"1264", &input[2][0]); // same as typing "VAR 1264 <value>" at the console
-
- displayTextNumbers=1;
- Print_to_console("text numbers on");
-
- return(1);
- break;
- //---------------------------------
- case 41: // GRAB (James27jun97)
- grabbingSequences = 1-grabbingSequences;
- if (grabbingSequences)
- Print_to_console("PCX-grabbing enabled");
- else
- Print_to_console("PCX-grabbing disabled");
- return(0);
- break;
- //---------------------------------
- case 42: // EVENTS (James11july97)
- Con_display_events();
- return(0);
- break;
- //---------------------------------
- case 43: // SFX (James 16july97)
- wantSfxDebug = 1-wantSfxDebug;
- if (wantSfxDebug)
- Print_to_console("SFX logging activated (see zebug.txt)");
- else
- Print_to_console("SFX logging deactivated");
- return(0);
- break;
- //---------------------------------
- case 44: // ENGLISH (James31july97)
- InitialiseFontResourceFlags(DEFAULT_TEXT);
- Print_to_console("Default fonts selected");
- return(0);
- break;
- //---------------------------------
- case 45: // FINNISH (James31july97)
- InitialiseFontResourceFlags(FINNISH_TEXT);
- Print_to_console("Finnish fonts selected");
- return(0);
- break;
- //---------------------------------
- case 46: // POLISH (James31july97)
- InitialiseFontResourceFlags(POLISH_TEXT);
- Print_to_console("Polish fonts selected");
- return(0);
- break;
- //---------------------------------
- default: //ignores 'yes' and 'no' (for example)
- Print_to_console("??");
- return(0);
- break;
- //---------------------------------
- }
- break;
-
-
- case 1: //checks for YES and NO and returns the 1 or 2 to the calling code
- switch(j)
- {
- case 4: //YES
- return(1);
-
- case 5: //NO
- return(2);
-
- default: //ignore yes and no for example
- Print_to_console("??");
- return(0);
-
- }
- break;
-
+ // got to the end of an entry - so must have matched the whole
+ // word
+ if (!input[0][i] && !commands[j][i]) {
+ // the console mode denotes the scope of the commands
+ // accepted 0 is the base mode
+
+ switch (console_mode) {
+ // external console commands may only be
+ // requiring a yes/no input for example
+ // a different scope would only accept yes and
+ // no and drop back out when found... see?
+
+ case 0:
+ // base command line
+ switch(j) {
+ case 0: // HELP
+ Con_help();
+ return 0;
+ case 1: // MEM
+ Console_mem_display();
+ return 0;
+ case 2: // Q
+ // quit the console
+ return 1;
+ case 3: // TONY
+ Print_to_console("What about him?");
+ return 0;
+ case 6: // RES
+ res_man.Print_console_clusters();
+ return 0;
+ case 7: // STARTS
+ Con_print_start_menu();
+ return 0;
+ case 8: // START
+ case 18: // S (same as START)
+ Con_start(&input[1][0]);
+ // force the palette
+ BS2_SetPalette(187, 1, pal, RDPAL_INSTANT);
+ return 0;
+ case 9: // INFO
+ displayDebugText = 1 - displayDebugText;
+ if (displayDebugText)
+ Print_to_console("info text on");
+ else
+ Print_to_console("info text off");
+ return 0;
+ case 10: // WALKGRID
+ displayWalkGrid = 1 - displayWalkGrid;
+ if (displayWalkGrid)
+ Print_to_console("walk-grid display on");
+ else
+ Print_to_console("walk-grid display off");
+ return 0;
+ case 11: // MOUSE
+ displayMouseMarker = 1 - displayMouseMarker;
+ if (displayMouseMarker)
+ Print_to_console("mouse marker on");
+ else
+ Print_to_console("mouse marker off");
+ return 0;
+ case 12: // PLAYER
+ displayPlayerMarker = 1 - displayPlayerMarker;
+ if (displayPlayerMarker)
+ Print_to_console("player feet marker on");
+ else
+ Print_to_console("player feet marker off");
+ return 0;
+ case 13: // RESLOOK
+ res_man.Examine_res(&input[1][0]);
+ return 0;
+ case 14: // CUR
+ Print_current_info();
+ return 0;
+ case 15: // RUNLIST
+ LLogic.Examine_run_list();
+ return 0;
+ case 16: // KILL
+ res_man.Kill_res(&input[1][0]);
+ return 0;
+ case 17: // NUKE
+ Print_to_console("killing all resources except variable file & player object...");
+ // '1' means we want output to console
+ res_man.Kill_all_res(1);
+ return 0;
+ case 19: // VAR
+ if (total_commands == 2)
+ Var_check(&input[1][0]);
+ else
+ Var_set(&input[1][0], &input[2][0]);
+ return 0;
+ case 20: // RECT
+ definingRectangles = 1 - definingRectangles;
+ if (definingRectangles)
+ Print_to_console("mouse rectangles enabled");
+ else
+ Print_to_console("mouse rectangles disabled");
+ // reset (see debug.cpp & mouse.cpp)
+ draggingRectangle = 0;
+ return 0;
+ case 21: // CLEAR
+ Print_to_console("killing all object resources except player...");
+ // '1' means we want output to console
+ res_man.Kill_all_objects(1);
+ return 0;
+ case 22: // DEBUGON
+ displayDebugText = 1;
+ displayWalkGrid = 1;
+ displayMouseMarker = 1;
+ displayPlayerMarker = 1;
+ displayTextNumbers = 1;
+
+ Print_to_console("enabled all on-screen debug info");
+ return 0;
+ case 23: // DEBUGOFF
+ displayDebugText = 0;
+ displayWalkGrid = 0;
+ displayMouseMarker = 0;
+ displayPlayerMarker = 0;
+ displayTextNumbers = 0;
+ definingRectangles = 0;
+ draggingRectangle = 0;
+
+ Print_to_console("disabled all on-screen debug info");
+ return 0;
+ case 24: // SAVEREST
+ testingSnR = 1 - testingSnR;
+ if (testingSnR)
+ Print_to_console("Enabled S&R logic_script stability checking");
+ else
+ Print_to_console("Disabled S&R logic_script stability checking");
+ return 0;
+ case 25: // SAVES
+ Print_to_console("Savegames:");
+ Con_list_savegames();
+ return 0;
+ case 26: // SAVE <slotNo> <description>
+ Con_save_game(total_commands, &input[1][0], &input[2][0]);
+ return 0;
+ case 27: // RESTORE <slotNo>
+ Con_restore_game(total_commands, &input[1][0]);
+
+ // quit the console
+ return 1;
+ case 28: // BLTFXON
+ SetBltFx();
+ Print_to_console("blit fx enabled");
+ return 0;
+ case 29: // BLTFXOFF
+ ClearBltFx();
+ Print_to_console("blit fx disabled");
+ return 0;
+ case 30: // TIMEON
+ Con_start_timer(total_commands, &input[1][0]);
+ Print_to_console("timer display on");
+ return 0;
+ case 31: // TIMEOFF
+ displayTime = 0;
+ Print_to_console("timer display off");
+ return 0;
+ case 32: // TEXT
+ displayTextNumbers = 1 - displayTextNumbers;
+ if (displayTextNumbers)
+ Print_to_console("text numbers on");
+ else
+ Print_to_console("text numbers off");
+ return 0;
+ case 33: // SHOWVAR <varNo>
+ // add variable to watch-list
+ ShowVar(&input[1][0]);
+ return 0;
+ case 34: // HIDEVAR <varNo>
+ // remove variable from watch-list
+ HideVar(&input[1][0]);
+ return 0;
+ case 35: // VERSION
+ Con_display_version();
+ return(0);
+ case 36: // SOFT
+ case 37: // HARD
+ // ScummVM doesn't distinguish between
+ // software and hardware rendering
+ Print_to_console("This command is no longer relevant");
+ return 0;
+ case 38: // ANIMTEST
+ // automatically do "s 32" to run the
+ // text/speech testing start-script
+
+ Con_start((uint8 *) "32");
+ Print_to_console("Setting flag 'system_testing_anims'");
+
+ // same as typing "VAR 912 <value>" at
+ // the console
+
+ Var_set((uint8 *) "912", &input[1][0]);
+ return 1;
+ case 39: // TEXTTEST
+ // automatically do "s 33" to run the
+ // text/speech testing start-script
+
+ Con_start((uint8 *) "33");
+
+ Print_to_console("Setting flag 'system_testing_text'");
+
+ // same as typing "VAR 1230 <value>" at
+ // the console
+ Var_set((uint8 *) "1230", &input[1][0]);
+
+ displayTextNumbers = 1;
+ Print_to_console("text numbers on");
+ return 1;
+ case 40: // LINETEST
+ // automatically do "s 33" to run the
+ // text/speech testing start-script
+
+ Con_start((uint8 *) "33");
+
+ Print_to_console("Setting var 1230 (system_testing_text):");
+
+ // same as typing "VAR 1230 <value>" at
+ // the console
+ Var_set((uint8 *) "1230", &input[1][0]);
+
+ Print_to_console("Setting var 1264 (system_test_line_no):");
+
+ // same as typing "VAR 1264 <value>" at
+ // the console
+ Var_set((uint8 *) "1264", &input[2][0]);
+
+ displayTextNumbers = 1;
+ Print_to_console("text numbers on");
+ return 1;
+ case 41: // GRAB
+ grabbingSequences = 1 - grabbingSequences;
+ if (grabbingSequences)
+ Print_to_console("PCX-grabbing enabled");
+ else
+ Print_to_console("PCX-grabbing disabled");
+ return 0;
+ case 42: // EVENTS
+ Con_display_events();
+ return 0;
+ case 43: // SFX
+ wantSfxDebug = 1 - wantSfxDebug;
+ if (wantSfxDebug)
+ Print_to_console("SFX logging activated (see zebug.txt)");
+ else
+ Print_to_console("SFX logging deactivated");
+ return 0;
+ case 44: // ENGLISH
+ InitialiseFontResourceFlags(DEFAULT_TEXT);
+ Print_to_console("Default fonts selected");
+ return 0;
+ case 45: // FINNISH
+ InitialiseFontResourceFlags(FINNISH_TEXT);
+ Print_to_console("Finnish fonts selected");
+ return 0;
+ case 46: // POLISH
+ InitialiseFontResourceFlags(POLISH_TEXT);
+ Print_to_console("Polish fonts selected");
+ return 0;
+ default:
+ Print_to_console("??");
+ return 0;
+ }
+ break;
+ case 1:
+ // checks for YES and NO and returns the 1 or
+ // 2 to the calling code
+ switch (j) {
+ case 4: // YES
+ return 1;
+ case 5: // NO
+ return 2;
+ default:
+ Print_to_console("??");
+ return 0;
+ }
+ break;
}
break;
}
}
- Print_to_console("?"); //couldn't find a proper match
- return(0);
+ Print_to_console("?"); //couldn't find a proper match
+ return 0;
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_help(void) //Tony13Aug96
-{
-// print out a list of commands
-
- int command;
- int scrolls=0;
- char c;
-
-
+void Con_help(void) {
+ // print out a list of commands
+ int command;
+ int scrolls = 0;
+ char c;
Scroll_console();
+ for (command = 0; command < TOTAL_CONSOLE_COMMANDS; command++) {
+ Print_to_console((char *) commands[command]);
+ Build_display();
+ scrolls++;
-
- for (command=0; command < TOTAL_CONSOLE_COMMANDS; command++)
- {
- Print_to_console((char *)commands[command]);
+ if (scrolls == 18) {
+ Temp_print_to_console("- Press ESC to stop or any other key to continue");
Build_display();
- scrolls++;
+ do {
+ ServiceWindows();
+ } while (!KeyWaiting());
- if (scrolls==18)
- {
- Temp_print_to_console("- Press ESC to stop or any other key to continue");
- Build_display();
-
- do
- {
- // Service windows
-
- ServiceWindows();
- }
- while(!KeyWaiting());
-
- ReadKey(&c); //kill the key we just pressed
- if (c==27) //ESC
- break;
-
- Clear_console_line(); //clear the Press Esc message ready for the new line
- scrolls=0;
- }
-
-
- }
-
+ ReadKey(&c);
+ if (c == 27)
+ break;
+ // clear the Press Esc message ready for the new line
+ Clear_console_line();
+ scrolls = 0;
+ }
+ }
}
-//-----------------------------------------------------------------------------------------------------------------------
-//-----------------------------------------------------------------------------------------------------------------------
-//-----------------------------------------------------------------------------------------------------------------------
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_print(uint8 *ascii, uint32 pen, uint32 paper) //Em(13Apr95tw)
-{
-//print pixels in closen pen number - no clipping on this one
-//where file is the graphic file of ascii characters
+
+void Con_print(uint8 *ascii, uint32 pen, uint32 paper) {
+ // print pixels in closen pen number - no clipping on this one
+ // where file is the graphic file of ascii characters
_frameHeader *head;
uint8 *charSet, *charPtr;
- int chr, x=0;
-
-
-
- charSet = res_man.Res_open(CONSOLE_FONT_ID); // open font file
-
- do
- {
+ int chr, x = 0;
-// Zdebug("#%d", *(ascii) );
+ // open font file
+ charSet = res_man.Res_open(CONSOLE_FONT_ID);
+ do {
chr = (int) *(ascii);
- chr-=32;
+ chr -= 32;
- head = (_frameHeader *)FetchFrameHeader(charSet,chr);
- charPtr = (uint8 *)(head+1);
+ head = (_frameHeader *) FetchFrameHeader(charSet, chr);
+ charPtr = (uint8 *) (head + 1);
Con_colour_block( x, head->width, head->height, pen, paper, charPtr);
- x+=head->width+1; //move on the x coordinate
+ x += head->width + 1;
ascii++;
- }
- while(*(ascii));
-
-
- res_man.Res_close(CONSOLE_FONT_ID); // close font file
+ } while(*(ascii));
+ // close font file
+ res_man.Res_close(CONSOLE_FONT_ID);
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_colour_block(int x, int width, int height, uint32 pen, uint32 paper, uint8 *sprite_data_ad) //Em(26Apr96tw)
-{
- int deltaX,xx,yy;
- char *ad;
+void Con_colour_block(int x, int width, int height, uint32 pen, uint32 paper, uint8 *sprite_data_ad) {
+ int deltaX, xx, yy;
+ char *ad;
+
+ deltaX = con_width - width;
- deltaX = con_width-width;
+ ad = (char *) console_sprite->ad;
- ad = (char *) console_sprite->ad;
- ad += (con_width*(con_depth-con_chr_height))+x; //locate bottom character row
+ // locate bottom character row
+ ad += (con_width * (con_depth - con_chr_height)) + x;
- for (yy=0;yy<height;yy++)
- {
- for (xx=0;xx<width;xx++)
- { if (pen = *(sprite_data_ad++)) //color
- *(ad++)= (uint8)CON_PEN;
+ for (yy = 0; yy < height; yy++) {
+ for (xx = 0; xx < width; xx++) {
+ if (pen = *(sprite_data_ad++)) //color
+ *(ad++)= (uint8) CON_PEN;
else *(ad++)= (uint8) paper;
}
- ad+=deltaX;
+ ad += deltaX;
}
}
-//-----------------------------------------------------------------------------------------------------------------------
+void Con_fatal_error(const char *format, ...) {
+ // Use this to alert the user of a major problem from which we cannot
+ // allow the game to continue. While in console mode the user will
+ // still be ble to use the console commands - which may be useful.
+ // This message is also written with debug() in case the console
+ // itself blows up
+ va_list arg_ptr;
+ char buf[150];
+ uint8 white[4] = { 255, 255, 255, 0 };
-
-
-
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_fatal_error(const char *format,...) //Tony17Oct96
-{
-//use this to alert the user of a major problem from which we cannot allow the game to continue
-//while in console mode the user will still be ble to use the console commands - which may be useful
-//this message is also written to the Zdebug file in case the console itself blows up
-
- va_list arg_ptr; //variable argument pointer
- char buf[150];
- uint8 white[4] = {255,255,255,0}; // (James 05mar97)
-
-
- BS2_SetPalette(CON_PEN, 1, white, RDPAL_INSTANT); // set text colour in case screen is faded down! (James 05mar97)
+ // set text colour in case screen is faded down! (James 05mar97)
+ BS2_SetPalette(CON_PEN, 1, white, RDPAL_INSTANT);
va_start(arg_ptr,format);
- _vsnprintf( buf, 150, format, arg_ptr);
+ _vsnprintf(buf, 150, format, arg_ptr);
+
+ this_screen.background_layer_id = 0; //in case error in display loop
- this_screen.background_layer_id=0; //in case error in display loop
+ // write to file first in-case the screen is screwed up and we never
+ // see the console
- Zdebug("CON_FATAL_ERROR:");
- Zdebug(buf); //write to file first in-case the screen is screwed up and we never see the console
+ debug(5, "CON_FATAL_ERROR: %s", buf);
Print_to_console(buf);
Print_to_console("fatal error, sword2 must terminate :-( (%d)", ID);
- Tconsole(0); //mode 0 so all commands are available but quit will terminate the game
+ //mode 0 so all commands are available but quit will terminate the game
+ Tconsole(0);
- Close_game(); //should down game services - free's mallocs, etc.
+ Close_game(); // should down game services - free's mallocs, etc.
+ CloseAppWindow();
- CloseAppWindow(); //
-
- exit(0);
+ exit 0;
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Var_check(uint8 *pointer) //Tony8Jan97
-{
- int var;
-
- sscanf((char*)pointer,"%d",&var);
+void Var_check(uint8 *pointer) {
+ int var;
- Print_to_console("%d", *(uint32 *)(res_man.resList[1]->ad+sizeof(_standardHeader)+4*var) );
+ sscanf((char *) pointer, "%d", &var);
+ Print_to_console("%d", *(uint32 *) (res_man.resList[1]->ad + sizeof(_standardHeader) + 4 * var));
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Var_set(uint8 *pointer, uint8 *p2) //Tony8Jan97
-{
- int var;
- int val;
+void Var_set(uint8 *pointer, uint8 *p2) {
+ int var;
+ int val;
+ sscanf((char *) pointer, "%d", &var);
+ sscanf((char *) p2, "%d", &val);
- sscanf((char*)pointer,"%d",&var);
- sscanf((char*)p2,"%d",&val);
+ Print_to_console("was %d", *(uint32 *) (res_man.resList[1]->ad + sizeof(_standardHeader) + 4 * var));
-
- Print_to_console("was %d", *(uint32 *)(res_man.resList[1]->ad+sizeof(_standardHeader)+4*var) );
-
- *(uint32 *)(res_man.resList[1]->ad+sizeof(_standardHeader)+4* var)=val;
+ *(uint32 *) (res_man.resList[1]->ad + sizeof(_standardHeader) + 4 * var) = val;
Print_to_console("now %d", val);
-
}
-//-----------------------------------------------------------------------------------------------------------------------
-void ShowVar(uint8 *varNoPtr) // James19mar97
-{
- int32 showVarNo=0;
+void ShowVar(uint8 *varNoPtr) {
+ int32 showVarNo = 0;
int32 varNo;
+ // 'varNo' is what we want to add
+ sscanf((char *) varNoPtr, "%d", &varNo);
- sscanf((char*)varNoPtr,"%d",&varNo); // 'varNo' is what we want to add
+ // search for a spare slot in the watch-list, but also watch out for
+ // this variable already being in the list
- // search for a spare slot in the watch-list, but also watch out for this variable already being in the list
- while ((showVarNo < MAX_SHOWVARS) && (showVar[showVarNo] != 0) && (showVar[showVarNo] != varNo))
+ while (showVarNo < MAX_SHOWVARS && showVar[showVarNo] != 0 && showVar[showVarNo] != varNo)
showVarNo++;
- if (showVarNo < MAX_SHOWVARS) // if we've found a spare slot or the variable's already there
- {
- if (showVar[showVarNo]==0) // empty slot
- {
- showVar[showVarNo] = varNo; // add it to the list at this slot
+ // if we've found a spare slot or the variable's already there
+ if (showVarNo < MAX_SHOWVARS) {
+ if (showVar[showVarNo] == 0) {
+ // empty slot - add it to the list at this slot
+ showVar[showVarNo] = varNo;
Print_to_console("var(%d) added to the watch-list", varNo);
- }
- else
+ } else
Print_to_console("var(%d) already in the watch-list!", varNo);
- }
- else
+ } else
Print_to_console("Sorry - no more allowed - hide one or extend the system watch-list");
-
}
-//-----------------------------------------------------------------------------------------------------------------------
-void HideVar(uint8 *varNoPtr) // James19mar97
-{
- int32 showVarNo=0;
+
+void HideVar(uint8 *varNoPtr) {
+ int32 showVarNo = 0;
int32 varNo;
+ // 'varNo' is what we want to remove
+ sscanf((char *) varNoPtr, "%d", &varNo);
- sscanf((char*)varNoPtr,"%d",&varNo); // 'varNo' is what we want to remove
-
- while ((showVarNo < MAX_SHOWVARS) && (showVar[showVarNo] != varNo)) // search for 'varNo' in the watch-list
+ // search for 'varNo' in the watch-list
+ while (showVarNo < MAX_SHOWVARS && showVar[showVarNo] != varNo)
showVarNo++;
- if (showVarNo < MAX_SHOWVARS) // if we've found 'varNo' in the list
- {
- showVar[showVarNo] = 0; // clear this slot
+ if (showVarNo < MAX_SHOWVARS) {
+ // We've found 'varNo' in the list - clear this slot
+ showVar[showVarNo] = 0;
Print_to_console("var(%d) removed from watch-list", varNo);
- }
- else
+ } else
Print_to_console("Sorry - can't find var(%d) in the list", varNo);
-
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_list_savegames(void) // (James05feb97) Tony1Apr97
-{
- uint8 description[SAVE_DESCRIPTION_LEN];
- int j, scrolls=0;
- char c;
- for (j=0;j<100;j++)
- if (GetSaveDescription(j, description) == SR_OK) //if there is a save game print the name
- { Print_to_console("%d: \"%s\"", j, description);
+void Con_list_savegames(void) {
+ uint8 description[SAVE_DESCRIPTION_LEN];
+ int j, scrolls = 0;
+ char c;
+
+ for (j = 0; j < 100; j++) {
+ // if there is a save game print the name
+ if (GetSaveDescription(j, description) == SR_OK) {
+ Print_to_console("%d: \"%s\"", j, description);
scrolls++;
Build_display();
- if (scrolls==18)
- {
+ if (scrolls == 18) {
Temp_print_to_console("- Press ESC to stop or any other key to continue");
Build_display();
- do
- {
- // Service windows
-
+ do {
ServiceWindows();
- }
- while(!KeyWaiting());
+ } while (!KeyWaiting());
- ReadKey(&c); //kill the key we just pressed
- if (c==27) //ESC
+ ReadKey(&c);
+ if (c == 27)
break;
- Clear_console_line(); //clear the Press Esc message ready for the new line
- scrolls=0;
+ // clear the Press Esc message ready for the
+ // new line
+ Clear_console_line();
+ scrolls = 0;
}
}
-
}
-//-----------------------------------------------------------------------------------------------------------------------
-#define SR_OK 0x00000000 // ok No worries
-#define SR_ERR_FILEOPEN 0x00000001 // can't open file Could create file for saving, or couldn't find file for loading
-#define SR_ERR_INCOMPATIBLE 0x00000002 // (RestoreGame only) incompatible savegame data Savegame file is obsolete. (Won't happen after development stops)
-#define SR_ERR_READFAIL 0x00000003 // (RestoreGame only) failed on reading savegame file Something screwed up during the fread()
-#define SR_ERR_WRITEFAIL 0x00000004 // (SaveGame only) failed on writing savegame file Something screwed up during the fwrite() - could be hard-drive full..?
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_save_game(int total_commands, uint8 *slotString, uint8 *description) // James05feb97
-{
- uint16 slotNo;
- uint32 rv;
-
- if ((mouse_status) || (mouse_mode_locked)) // if mouse if off, or system menu is locked off
- {
+
+void Con_save_game(int total_commands, uint8 *slotString, uint8 *description) {
+ uint16 slotNo;
+ uint32 rv;
+
+ // if mouse if off, or system menu is locked off
+ if (mouse_status || mouse_mode_locked) {
Print_to_console("WARNING: Cannot save game while control menu unavailable!");
return;
}
- if (total_commands >= 3) // SAVE <slot> <description>
- {
- if (Is_number(slotString))
- {
- slotNo = atoi((char*)slotString);
-
+ if (total_commands >= 3) {
+ // SAVE <slot> <description>
+ if (Is_number(slotString)) {
+ slotNo = atoi((char *) slotString);
rv = SaveGame(slotNo,description);
if (rv == SR_OK)
Print_to_console("Saved game \"%s\" to file \"savegame.%.3d\"", description, slotNo);
-
else if (rv == SR_ERR_FILEOPEN)
Print_to_console("ERROR: Cannot open file \"savegame.%.3d\"", slotNo);
-
else // SR_ERR_WRITEFAIL
Print_to_console("ERROR: Write error on file \"savegame.%.3d\"", slotNo);
}
- }
- else
+ } else
Print_to_console("Syntax Error: type SAVE (slot_number) (description)");
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_restore_game(int total_commands, uint8 *slotString) // James05feb97
-{
- uint16 slotNo;
- uint8 description[SAVE_DESCRIPTION_LEN];
- uint32 rv;
+void Con_restore_game(int total_commands, uint8 *slotString) {
+ uint16 slotNo;
+ uint8 description[SAVE_DESCRIPTION_LEN];
+ uint32 rv;
- if ((mouse_status) || (mouse_mode_locked)) // if mouse if off, or system menu is locked off
- {
+ // if mouse if off, or system menu is locked off
+ if (mouse_status || mouse_mode_locked) {
Print_to_console("WARNING: Cannot restore game while control menu unavailable!");
return;
}
- if (total_commands >= 2) // RESTORE <slot>
- {
- if (Is_number(slotString))
- {
- slotNo = atoi((char*)slotString);
+ if (total_commands >= 2) {
+ // RESTORE <slot>
+ if (Is_number(slotString)) {
+ slotNo = atoi((char *) slotString);
rv = RestoreGame(slotNo);
- if (rv == SR_OK)
- {
+ if (rv == SR_OK) {
GetSaveDescription(slotNo, description);
Print_to_console("Restored game \"%s\" from file \"savegame.%.3d\"", description, slotNo);
- }
- else if (rv == SR_ERR_FILEOPEN)
+ } else if (rv == SR_ERR_FILEOPEN)
Print_to_console("ERROR: Cannot open file \"savegame.%.3d\"", slotNo);
else if (rv == SR_ERR_INCOMPATIBLE)
@@ -1201,107 +985,86 @@ void Con_restore_game(int total_commands, uint8 *slotString) // James05feb97
else // SR_ERR_READFAIL
Print_to_console("ERROR: Read error on file \"savegame.%.3d\"", slotNo);
}
- }
- else
+ } else
Print_to_console("Syntax Error: type RESTORE (slot_number)");
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_start_timer(int total_commands, uint8 *slotString) // Paul12feb97
-{
-
- if (total_commands >= 2) // RESTORE <slot>
- {
- if (Is_number(slotString))
- {
- startTime = timeGetTime() - (atoi((char*)slotString) * 1000);
+
+void Con_start_timer(int total_commands, uint8 *slotString) {
+ if (total_commands >= 2) {
+ if (Is_number(slotString)) {
+ startTime = timeGetTime() - (atoi((char *) slotString) * 1000);
}
- }
- else
- {
+ } else {
if (startTime = 0)
startTime = timeGetTime();
}
displayTime = 1;
-
}
-//-----------------------------------------------------------------------------------------------------------------------
-uint8 Is_number(uint8 *ascii) // James05feb97
-{
- while (*ascii) // until we reach the null terminator
- {
- if ((*ascii >= '0') && (*ascii <= '9'))
+
+uint8 Is_number(uint8 *ascii) {
+ // until we reach the null terminator
+ while (*ascii) {
+ if (*ascii >= '0' && *ascii <= '9')
ascii++;
else
- return(0);
+ return 0;
}
- return(1);
+ return 1;
}
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_display_version(void) // James27mar97
-{
+
+void Con_display_version(void) {
struct tm *time;
time_t t;
char dateStamp[255];
char version[6];
- strcpy(version,(char*)version_string+HEAD_LEN);
- *(((unsigned char *)&t)) = *(version_string+14);
- *(((unsigned char *)&t)+1) = *(version_string+15);
- *(((unsigned char *)&t)+2) = *(version_string+16);
- *(((unsigned char *)&t)+3) = *(version_string+17);
+ strcpy(version, (char*) version_string + HEAD_LEN);
+ *(((unsigned char *) &t)) = *(version_string + 14);
+ *(((unsigned char *) &t) + 1) = *(version_string + 15);
+ *(((unsigned char *) &t) + 2) = *(version_string + 16);
+ *(((unsigned char *) &t) + 3) = *(version_string + 17);
- time = localtime( &t );
- sprintf(dateStamp,"%s", asctime( time ) );
- dateStamp[24]=0; // fudge over the newline character!
+ time = localtime(&t);
+ sprintf(dateStamp, "%s", asctime(time));
+ dateStamp[24] = 0; // fudge over the newline character!
Print_to_console("\"Broken Sword II\" (c) Revolution Software 1997.");
- Print_to_console("v%s created on %s for %s", version, dateStamp, unencoded_name+HEAD_LEN);
+ Print_to_console("v%s created on %s for %s", version, dateStamp, unencoded_name + HEAD_LEN);
Scroll_console();
// THE FOLLOWING LINES ARE TO BE COMMENTED OUT OF THE FINAL VERSION
-// Print_to_console("This program has a personalised fingerprint encrypted into the code.");
-// Print_to_console("If this CD was not sent directly to you by Virgin Interactive or Revolution Software");
-// Print_to_console("then please contact James Long at Revolution on (+44) 1904 639698.");
-// Scroll_console();
+ // Print_to_console("This program has a personalised fingerprint encrypted into the code.");
+ // Print_to_console("If this CD was not sent directly to you by Virgin Interactive or Revolution Software");
+ // Print_to_console("then please contact James Long at Revolution on (+44) 1904 639698.");
+ // Scroll_console();
}
-//-----------------------------------------------------------------------------------------------------------------------
-// typedef struct
-// {
-// uint32 id;
-// uint32 interact_id;
-// } _event_unit;
-//-----------------------------------------------------------------------------------------------------------------------
-void Con_display_events() // (James11july97)
-{
- uint32 j;
- uint32 target;
- uint32 script;
+void Con_display_events() {
+ uint32 j;
+ uint32 target;
+ uint32 script;
Print_to_console("EVENT LIST:");
- for (j=0; j<MAX_events; j++)
- {
- if (event_list[j].id)
- {
+ for (j = 0; j < MAX_events; j++) {
+ if (event_list[j].id) {
target = event_list[j].id;
script = event_list[j].interact_id;
Print_to_console("slot %d: id = %s (%d)", j, FetchObjectName(target), target);
- Print_to_console(" script = %s (%d) pos %d", FetchObjectName(script/65536), script/65536, script%65536);
+ Print_to_console(" script = %s (%d) pos %d", FetchObjectName(script / 65536), script / 65536, script % 65536);
}
}
}
-//------------------------------------------------------------------------------------
-#else // not debug
+#else
-void Print_to_console(const char *format,...) {}
-void Temp_print_to_console(const char *format,...) {}
-void Clear_console_line(void) {}
-void Scroll_console(void) {}
-void Init_console(void) {}
-void StartConsole(void) {}
+void Print_to_console(const char *format, ...) {}
+void Temp_print_to_console(const char *format, ...) {}
+void Clear_console_line(void) {}
+void Scroll_console(void) {}
+void Init_console(void) {}
+void StartConsole(void) {}
-#endif // _SWORD2_DEBUG
+#endif