ref: d57be3f239cc500bb600c6b9f932ae742dc2b8c7
parent: 8bbfd5b68a289ddf933f78d369606f1f22dd91c6
author: James Haley <haleyjd@hotmail.com>
date: Wed Sep 22 14:10:40 EDT 2010
Added linetype 180 to P_ShootSpecialLine and vetted other line types. Removed episode parameter from G_DeferedInitNew, started work on the "Name Your Character" menu, and adjusted the temporary code in M_ChooseSkill so that the game starts in Tarnhill rather than in the Sanctuary. Subversion-branch: /branches/strife-branch Subversion-revision: 2131
--- a/src/strife/g_game.c
+++ b/src/strife/g_game.c
@@ -1730,22 +1730,22 @@
//
-// G_InitNew
-// Can be called by the startup code or the menu task,
-// consoleplayer, displayplayer, playeringame[] should be set.
-//
skill_t d_skill;
int d_episode;
int d_map;
-
-void
-G_DeferedInitNew
-( skill_t skill,
- int episode,
- int map)
+
+//
+// G_DeferedInitNew
+//
+// Can be called by the startup code or the menu task,
+// consoleplayer, displayplayer, playeringame[] should be set.
+//
+// haleyjd 09/22/10: [STRIFE] Removed episode parameter
+//
+void G_DeferedInitNew(skill_t skill, int map)
{
d_skill = skill;
- d_episode = episode;
+ d_episode = 1; // STRIFE-TODO: no such thing as episodes.
d_map = map;
gameaction = ga_newgame;
}
--- a/src/strife/g_game.h
+++ b/src/strife/g_game.h
@@ -43,7 +43,8 @@
// Can be called by the startup code or M_Responder.
// A normal game starts at map 1,
// but a warp test can start elsewhere
-void G_DeferedInitNew (skill_t skill, int episode, int map);
+// [STRIFE] Removed episode parameter
+void G_DeferedInitNew (skill_t skill, int map);
void G_DeferedPlayDemo (char* demo);
--- a/src/strife/m_menu.c
+++ b/src/strife/m_menu.c
@@ -542,8 +542,60 @@
}
}
+//
+// M_DrawNameChar
+//
+// haleyjd 09/22/10: [STRIFE] New function
+// Handler for drawing the "Name Your Character" menu.
+//
+void M_DrawNameChar(void)
+{
+ int i;
+ M_WriteText(72, 28, DEH_String("Name Your Character"));
+
+ for (i = 0;i < load_end; i++)
+ {
+ M_DrawSaveLoadBorder(LoadDef.x,LoadDef.y+LINEHEIGHT*i);
+ M_WriteText(LoadDef.x,LoadDef.y+LINEHEIGHT*i,savegamestrings[i]);
+ }
+
+ if (saveStringEnter)
+ {
+ i = M_StringWidth(savegamestrings[saveSlot]); // STRIFE-TODO: verify variable
+ M_WriteText(LoadDef.x + i,LoadDef.y+LINEHEIGHT*saveSlot,"_");
+ }
+}
+
//
+// M_DoNameChar
+//
+// haleyjd 09/22/10: [STRIFE] New function
+// Handler for items in the "Name Your Character" menu.
+//
+void M_DoNameChar(int choice)
+{
+ int map;
+
+ // STRIFE-TODO
+ // dword_9F144 = 1;
+ // ClearTmp();
+ // G_WriteSaveName(...);
+ // quickSaveSlot = v5; // VERIFY VARIABLE
+ // SaveDef.lastOn = v5;
+ // ClearSlot();
+ // FromCurr(...);
+
+ if(isdemoversion)
+ map = 33;
+ else
+ map = 2;
+
+ //G_DeferedInitNew(skill, map);
+ M_ClearMenus(0);
+}
+
+//
// M_LoadGame & Cie.
//
void M_DrawLoad(void)
@@ -555,8 +607,8 @@
for (i = 0;i < load_end; i++)
{
- M_DrawSaveLoadBorder(LoadDef.x,LoadDef.y+LINEHEIGHT*i);
- M_WriteText(LoadDef.x,LoadDef.y+LINEHEIGHT*i,savegamestrings[i]);
+ M_DrawSaveLoadBorder(LoadDef.x,LoadDef.y+LINEHEIGHT*i);
+ M_WriteText(LoadDef.x,LoadDef.y+LINEHEIGHT*i,savegamestrings[i]);
}
}
@@ -568,15 +620,15 @@
void M_DrawSaveLoadBorder(int x,int y)
{
int i;
-
+
V_DrawPatchDirect(x - 8, y + 7,
W_CacheLumpName(DEH_String("M_LSLEFT"), PU_CACHE));
-
+
for (i = 0;i < 24;i++)
{
- V_DrawPatchDirect(x, y + 7,
+ V_DrawPatchDirect(x, y + 7,
W_CacheLumpName(DEH_String("M_LSCNTR"), PU_CACHE));
- x += 8;
+ x += 8;
}
V_DrawPatchDirect(x, y + 7,
@@ -591,7 +643,7 @@
void M_LoadSelect(int choice)
{
char name[256];
-
+
strcpy(name, P_SaveGameFile(choice));
G_LoadGame (name);
@@ -605,10 +657,10 @@
{
if (netgame)
{
- M_StartMessage(DEH_String(LOADNET),NULL,false);
- return;
+ M_StartMessage(DEH_String(LOADNET),NULL,false);
+ return;
}
-
+
M_SetupNextMenu(&LoadDef);
M_ReadSaveStrings();
}
@@ -620,18 +672,18 @@
void M_DrawSave(void)
{
int i;
-
+
V_DrawPatchDirect(72, 28, W_CacheLumpName(DEH_String("M_SAVEG"), PU_CACHE));
for (i = 0;i < load_end; i++)
{
- M_DrawSaveLoadBorder(LoadDef.x,LoadDef.y+LINEHEIGHT*i);
- M_WriteText(LoadDef.x,LoadDef.y+LINEHEIGHT*i,savegamestrings[i]);
+ M_DrawSaveLoadBorder(LoadDef.x,LoadDef.y+LINEHEIGHT*i);
+ M_WriteText(LoadDef.x,LoadDef.y+LINEHEIGHT*i,savegamestrings[i]);
}
-
+
if (saveStringEnter)
{
- i = M_StringWidth(savegamestrings[saveSlot]);
- M_WriteText(LoadDef.x + i,LoadDef.y+LINEHEIGHT*saveSlot,"_");
+ i = M_StringWidth(savegamestrings[saveSlot]);
+ M_WriteText(LoadDef.x + i,LoadDef.y+LINEHEIGHT*saveSlot,"_");
}
}
@@ -936,7 +988,7 @@
if (key != key_menu_confirm)
return;
- G_DeferedInitNew(nightmare,epi+1,1);
+ G_DeferedInitNew(nightmare, 1);
M_ClearMenus (0);
}
*/
@@ -944,7 +996,9 @@
void M_ChooseSkill(int choice)
{
// haleyjd 09/07/10: Removed nightmare confirmation
- G_DeferedInitNew(choice,epi+1,1);
+ // STRIFE-TODO: This is not done here, but on the "Name your Character" menu.
+ // I have modified the starting map to 2 until the naming menu is functional.
+ G_DeferedInitNew(choice, 2);
M_ClearMenus (0);
}
--- a/src/strife/p_spec.c
+++ b/src/strife/p_spec.c
@@ -1399,46 +1399,54 @@
line_t* line )
{
int ok;
-
+
// Impacts that other things can activate.
if (!thing->player)
{
- ok = 0;
- switch(line->special)
- {
- case 46:
- case 182: // villsa [STRIFE] for windows
- // OPEN DOOR IMPACT
- ok = 1;
- break;
- }
- if (!ok)
- return;
+ ok = 0;
+ switch(line->special)
+ {
+ case 46:
+ case 182: // villsa [STRIFE] for windows
+ // OPEN DOOR IMPACT
+ ok = 1;
+ break;
+ }
+ if (!ok)
+ return;
}
switch(line->special)
{
- case 24:
- // RAISE FLOOR
- EV_DoFloor(line,raiseFloor);
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 46:
- // OPEN DOOR
- EV_DoDoor(line,open);
- P_ChangeSwitchTexture(line,1);
- break;
-
- case 47:
- // RAISE FLOOR NEAR AND CHANGE
- EV_DoPlat(line,raiseToNearestAndChange,0);
- P_ChangeSwitchTexture(line,0);
- break;
+ case 24:
+ // RAISE FLOOR - [STRIFE] Verified unmodified
+ EV_DoFloor(line,raiseFloor);
+ P_ChangeSwitchTexture(line,0);
+ break;
- case 182:
- // villsa [STRIFE] break glass
- P_ChangeSwitchTexture(line, 0);
+ case 46:
+ // OPEN DOOR - [STRIFE] Verified unmodified.
+ EV_DoDoor(line,open);
+ P_ChangeSwitchTexture(line,1);
+ break;
+
+ case 47: // STRIFE-TODO: plat type changed to 4 ????
+ // RAISE FLOOR NEAR AND CHANGE
+ EV_DoPlat(line,raiseToNearestAndChange,0);
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 180:
+ // haleyjd 09/22/10: [STRIFE] G1 Raise Floor 512 & Change
+ EV_DoFloor(line, raiseFloor512AndChange);
+ P_ChangeSwitchTexture(line, 0);
+ break;
+
+ case 182:
+ // villsa [STRIFE] G1 Break Glass
+ // haleyjd: note that 182 is also a W1 type in P_CrossSpecialLine, but
+ // can only be activated in that manner by an MF_MISSILE object.
+ P_ChangeSwitchTexture(line, 0);
break;
}
}