char com_token[MAX_INPUTLINE];
int com_argc;
const char **com_argv;
+int com_selffd = -1;
gamemode_t gamemode;
const char *gamename;
buffer[3] = i & 0xFF;
}
+void StoreBigShort (unsigned char *buffer, unsigned short i)
+{
+ buffer[0] = (i >> 8) & 0xFF;
+ buffer[1] = i & 0xFF;
+}
+
+void StoreLittleLong (unsigned char *buffer, unsigned int i)
+{
+ buffer[0] = i & 0xFF;
+ buffer[1] = (i >> 8) & 0xFF;
+ buffer[2] = (i >> 16) & 0xFF;
+ buffer[3] = (i >> 24) & 0xFF;
+}
+
+void StoreLittleShort (unsigned char *buffer, unsigned short i)
+{
+ buffer[0] = i & 0xFF;
+ buffer[1] = (i >> 8) & 0xFF;
+}
+
/*
============================================================================
for the char 0 to initialize a clean state, and then once with the string " "
(a space) so the routine knows how long a space is.
+In case no single character fits into the given width, the wordWidth function
+must return the width of exactly one character.
+
Wrapped lines get the isContinuation flag set and are continuationWidth less wide.
The sum of the return values of the processLine function will be returned.
result += processLine(passthroughPL, startOfLine, cursor - startOfLine, spaceUsedInLine, isContinuation);
isContinuation = false;
goto out;
- break;
case '\n': // end of line
result += processLine(passthroughPL, startOfLine, cursor - startOfLine, spaceUsedInLine, isContinuation);
isContinuation = false;
}
out_inner:
spaceUsedForWord = wordWidth(passthroughCW, cursor, &wordLen, maxWidth - continuationWidth); // this may have reduced wordLen when it won't fit - but this is GOOD. TODO fix words that do fit in a non-continuation line
- if(wordLen < 1)
+ if(wordLen < 1) // cannot happen according to current spec of wordWidth
{
wordLen = 1;
spaceUsedForWord = maxWidth + 1; // too high, forces it in a line of itself
typedef struct gamemode_info_s
{
- const char* prog_name;
- const char* cmdline;
- const char* gamename;
- const char* gamedirname1;
- const char* gamedirname2;
- const char* gamescreenshotname;
- const char* gameuserdirname;
+ const char* prog_name; // not null
+ const char* cmdline; // not null
+ const char* gamename; // not null
+ const char* gamedirname1; // not null
+ const char* gamedirname2; // null
+ const char* gamescreenshotname; // not nul
+ const char* gameuserdirname; // not null
} gamemode_info_t;
static const gamemode_info_t gamemode_info [GAME_COUNT] =
// GAME_EDU2P
// COMMANDLINEOPTION: Game: -edu2p runs the game Edu2 prototype
{ "edu2p", "-edu2p", "EDU2 Prototype", "id1", "edu2", "edu2_p", "edu2prototype" },
-// GAME_BLADEMASTER
-// COMMANDLINEOPTION: Game: -blademaster runs the game Prophecy: Return of the BladeMaster
-{ "blademaster", "-blademaster", "Prophecy: Return of the BladeMaster", "basebm", NULL, "blademaster", "blademaster" },
// GAME_PROPHECY
-// COMMANDLINEOPTION: Game: -prophecy runs the game Quake (default)
+// COMMANDLINEOPTION: Game: -prophecy runs the game Prophecy
{ "prophecy", "-prophecy", "Prophecy", "data", NULL, "prophecy", "prophecy" },
// GAME_BLOODOMNICIDE
// COMMANDLINEOPTION: Game: -omnicide runs the game Blood Omnicide
{ "omnicide", "-omnicide", "Blood Omnicide", "kain", NULL, "omnicide", "omnicide" },
+// GAME_STEELSTORM
+// COMMANDLINEOPTION: Game: -steelstorm runs the game Steel Storm
+{ "steelstorm", "-steelstorm", "Steel-Storm", "gamedata", NULL, "ss", "steelstorm" },
+// GAME_STRAPBOMB
+// COMMANDLINEOPTION: Game: -strapbomb runs the game Strap-on-bomb Car
+{ "strapbomb", "-strapbomb", "Strap-on-bomb Car", "id1", NULL, "strap", "strapbomb" },
};
void COM_InitGameType (void)
{
char name [MAX_OSPATH];
unsigned int i;
+ int t;
FS_StripExtension (com_argv[0], name, sizeof (name));
COM_ToLowerString (name, name, sizeof (name));
gamedirname2 = gamemode_info[gamemode].gamedirname2;
gamescreenshotname = gamemode_info[gamemode].gamescreenshotname;
gameuserdirname = gamemode_info[gamemode].gameuserdirname;
+
+ if((t = COM_CheckParm("-customgamename")) && t + 1 < com_argc)
+ gamename = com_argv[t+1];
+ if((t = COM_CheckParm("-customgamedirname1")) && t + 1 < com_argc)
+ gamedirname1 = com_argv[t+1];
+ if((t = COM_CheckParm("-customgamedirname2")) && t + 1 < com_argc)
+ gamedirname2 = *com_argv[t+1] ? com_argv[t+1] : NULL;
+ if((t = COM_CheckParm("-customgamescreenshotname")) && t + 1 < com_argc)
+ gamescreenshotname = com_argv[t+1];
+ if((t = COM_CheckParm("-customgameuserdirname")) && t + 1 < com_argc)
+ gameuserdirname = com_argv[t+1];
}