main() reorganization (trunk only)
Move some internals-related code out of port-specific main so that
it isn't duplicated a bunch of times. One minor side-effect of this
change is that if you auto-pickup something at the very start of a game,
it will happen after any full moon/new moon/Friday 13th message rather
than before. There's a second change for some: the shared main() used
by several of the micro ports had a small difference in game play--if you
saved a game while on an engraving, it would automatically be read when
you resume--that will now occur for everybody [Elbereth weenies rejoice!].
pcmain() was also calling update_inventory() at start of play. That's
unnecessary for new games, where inventory initialization triggers a call
to it for each item added to your pack; but I wasn't sure about restored
games, so everybody gets it there now.
The Mac and BeOS ports evidently haven't been touched it some time;
they still referenced flags.move which got replaced by context.move quite
a while back. The Windows GUI code has a declaration for mswin_moveloop()
which appears to be non-existant, but I left it alone. I assume that the
Qt interface uses the existing main() routines; at least I couldn't find
any start of game code specific to it. vmsmain's revised main() is the
only one which has been tested.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* SCCS Id: @(#)winhack.c 3.5 2005/01/23 */
|
||||
/* SCCS Id: @(#)winhack.c 3.5 2006/04/01 */
|
||||
/* Copyright (C) 2001 by Alex Kompel */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -62,7 +62,7 @@ NHWinApp _nethack_app;
|
||||
#endif
|
||||
|
||||
// Foward declarations of functions included in this code module:
|
||||
extern void FDECL(pcmain, (int,char **));
|
||||
extern boolean FDECL(pcmain, (int,char **));
|
||||
static void __cdecl mswin_moveloop(void *);
|
||||
|
||||
#define MAX_CMDLINE_PARAM 255
|
||||
@@ -80,6 +80,7 @@ int APIENTRY WinMain(HINSTANCE hInstance,
|
||||
TCHAR wbuf[BUFSZ];
|
||||
char buf[BUFSZ];
|
||||
DWORD major, minor;
|
||||
boolean resuming;
|
||||
|
||||
|
||||
/* ensure that we don't access violate on a panic() */
|
||||
@@ -174,9 +175,9 @@ int APIENTRY WinMain(HINSTANCE hInstance,
|
||||
}
|
||||
free(savefile);
|
||||
}
|
||||
pcmain(argc,argv);
|
||||
resuming = pcmain(argc,argv);
|
||||
|
||||
moveloop();
|
||||
moveloop(resuming);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user