Initial check in of icontext.

This commit is contained in:
Bart House
2018-11-23 15:22:51 -08:00
parent 6272c37035
commit 5bbe3cd6bb
6 changed files with 34 additions and 19 deletions
+14 -2
View File
@@ -439,8 +439,20 @@ struct early_opt {
boolean valallowed; boolean valallowed;
}; };
/* encumbrance */ /* instance_context holds per game instance data that does not need to be
E int oldcap; * persisted upon game exit. This game instance data is one of the first
* things initialized during the initialization of the game engine.
* It is initialized with icontext_initial_state found in decl.c */
#define PLAYAGAIN
struct instance_context {
int oldcap; /* encumberance - pickup.c */
};
E struct instance_context icontext;
E void icontext_init();
#undef E #undef E
+14 -5
View File
@@ -215,9 +215,6 @@ NEARDATA struct monst *migrating_mons = (struct monst *) 0;
NEARDATA struct mvitals mvitals[NUMMONS]; NEARDATA struct mvitals mvitals[NUMMONS];
/* originally from pickup.c */
int oldcap = 0; /* encumbrance */
NEARDATA struct c_color_names c_color_names = { NEARDATA struct c_color_names c_color_names = {
"black", "amber", "golden", "light blue", "red", "green", "black", "amber", "golden", "light blue", "red", "green",
"silver", "blue", "purple", "white", "orange" "silver", "blue", "purple", "white", "orange"
@@ -529,8 +526,6 @@ decl_early_init()
ZERO(ubirthday); ZERO(ubirthday);
ZERO(urealtime); ZERO(urealtime);
ZERO(oldcap);
ZEROARRAY(lastseentyp); ZEROARRAY(lastseentyp);
ZEROPTR(invent); ZEROPTR(invent);
@@ -612,4 +607,18 @@ decl_early_init()
} }
#endif #endif
const struct instance_context icontext_initial_state = {
0, /* oldcap - last encumberance in pickup.c */
};
struct instance_context icontext;
void
icontext_init()
{
icontext = icontext_initial_state;
decl_early_init();
};
/*decl.c*/ /*decl.c*/
+3 -3
View File
@@ -1558,7 +1558,7 @@ encumber_msg()
{ {
int newcap = near_capacity(); int newcap = near_capacity();
if (oldcap < newcap) { if (icontext.oldcap < newcap) {
switch (newcap) { switch (newcap) {
case 1: case 1:
Your("movements are slowed slightly because of your load."); Your("movements are slowed slightly because of your load.");
@@ -1576,7 +1576,7 @@ encumber_msg()
break; break;
} }
context.botl = 1; context.botl = 1;
} else if (oldcap > newcap) { } else if (icontext.oldcap > newcap) {
switch (newcap) { switch (newcap) {
case 0: case 0:
Your("movements are now unencumbered."); Your("movements are now unencumbered.");
@@ -1595,7 +1595,7 @@ encumber_msg()
context.botl = 1; context.botl = 1;
} }
oldcap = newcap; icontext.oldcap = newcap;
return newcap; return newcap;
} }
+1 -3
View File
@@ -97,9 +97,7 @@ char *argv[];
nethack_enter(argc, argv); nethack_enter(argc, argv);
#ifdef PLAYAGAIN icontext_init();
decl_early_init();
#endif
sys_early_init(); sys_early_init();
#if defined(WIN32) && defined(TTY_GRAPHICS) #if defined(WIN32) && defined(TTY_GRAPHICS)
+1 -3
View File
@@ -37,9 +37,7 @@ char *argv[];
{ {
boolean resuming; boolean resuming;
#ifdef PLAYAGAIN icontext_init();
decl_early_init();
#endif
sys_early_init(); sys_early_init();
Strcpy(default_window_sys, "tty"); Strcpy(default_window_sys, "tty");
resuming = pcmain(argc, argv); resuming = pcmain(argc, argv);
+1 -3
View File
@@ -97,9 +97,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
win10_init(); win10_init();
#ifdef PLAYAGAIN icontext_init();
decl_early_init();
#endif
sys_early_init(); sys_early_init();
/* init applicatio structure */ /* init applicatio structure */