ref: ae8ca20a1d02dade7bc0d8feb09225d91e53f3be
parent: 4dc1ca199d444314dfeada9bf159a538edc50414
author: Simon Howard <fraggle@gmail.com>
date: Mon Oct 17 16:49:42 EDT 2005
Add dehacked "Misc" implementations for max armor+health, blue+green armor classes Subversion-branch: /trunk/chocolate-doom Subversion-revision: 207
--- a/src/deh_misc.c
+++ b/src/deh_misc.c
@@ -1,7 +1,7 @@
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
-// $Id: deh_misc.c 206 2005-10-17 20:27:05Z fraggle $
+// $Id: deh_misc.c 207 2005-10-17 20:49:42Z fraggle $
//
// Copyright(C) 2005 Simon Howard
//
@@ -21,6 +21,10 @@
// 02111-1307, USA.
//
// $Log$
+// Revision 1.4 2005/10/17 20:49:42 fraggle
+// Add dehacked "Misc" implementations for max armor+health, blue+green
+// armor classes
+//
// Revision 1.3 2005/10/17 20:27:05 fraggle
// Start of Dehacked 'Misc' section support. Initial Health+Bullets,
// and bfg cells/shot are supported.
@@ -47,12 +51,50 @@
#include "deh_io.h"
#include "deh_main.h"
+// Dehacked: "Initial Health"
+// This is the initial health a player has when starting anew.
+// See G_PlayerReborn in g_game.c
+
int deh_initial_health = 100;
+
+// Dehacked: "Initial bullets"
+// This is the number of bullets the player has when starting anew.
+// See G_PlayerReborn in g_game.c
+
int deh_initial_bullets = 50;
-int deh_max_health; // TODO
-int deh_max_armor; // TODO
-int deh_green_armor_class; // TODO
-int deh_blue_armor_class; // TODO
+
+// Dehacked: "Max Health"
+// This is the maximum health that can be reached using medikits
+// alone. See P_GiveBody in p_inter.c
+
+int deh_max_health = 100;
+
+// Dehacked: "Max Armor"
+// This is the maximum armor which can be reached by picking up
+// armor helmets. See P_TouchSpecialThing in p_inter.c
+
+int deh_max_armor = 200;
+
+// Dehacked: "Green Armor Class"
+// This is the armor class that is given when picking up the green
+// armor or an armor helmet. See P_TouchSpecialThing in p_inter.c
+//
+// Question: Does DOS dehacked modify the armor helmet behavior
+// as well as the green armor behavior? I am currently following
+// the Boom behavior, which is "yes".
+
+int deh_green_armor_class = 1;
+
+// Dehacked: "Blue Armor Class"
+// This is the armor class that is given when picking up the blue
+// armor or a megasphere. See P_TouchSpecialThing in p_inter.c
+//
+// Question: Does DOS dehacked modify the megasphere behavior
+// as well as the blue armor behavior? I am currently following
+// the Boom behavior, which is "yes".
+
+int deh_blue_armor_class = 2;
+
int deh_max_soulsphere; // TODO
int deh_soulsphere_health; // TODO
int deh_megasphere_health; // TODO
@@ -61,7 +103,13 @@
int deh_idfa_armor_class; // TODO
int deh_idkfa_armor; // TODO
int deh_idkfa_armor_class; // TODO
+
+// Dehacked: "BFG Cells/Shot"
+// This is the number of CELLs firing the BFG uses up.
+// See P_CheckAmmo and A_FireBFG in p_pspr.c
+
int deh_bfg_cells_per_shot = 40;
+
int deh_monsters_infight; // TODO
static struct
@@ -72,10 +120,10 @@
} misc_settings[] = {
{"Initial Health", &deh_initial_health, true},
{"Initial Bullets", &deh_initial_bullets, true},
- {"Max Health", &deh_max_health},
- {"Max Armor", &deh_max_armor},
- {"Green Armor Class", &deh_green_armor_class},
- {"Blue Armor Class", &deh_blue_armor_class},
+ {"Max Health", &deh_max_health, true},
+ {"Max Armor", &deh_max_armor, true},
+ {"Green Armor Class", &deh_green_armor_class, true},
+ {"Blue Armor Class", &deh_blue_armor_class, true},
{"Max Soulsphere", &deh_max_soulsphere},
{"Soulsphere Health", &deh_soulsphere_health},
{"Megasphere Health", &deh_megasphere_health},
--- a/src/p_inter.c
+++ b/src/p_inter.c
@@ -1,7 +1,7 @@
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
-// $Id: p_inter.c 160 2005-10-03 21:39:39Z fraggle $
+// $Id: p_inter.c 207 2005-10-17 20:49:42Z fraggle $
//
// Copyright(C) 1993-1996 Id Software, Inc.
// Copyright(C) 2005 Simon Howard
@@ -22,6 +22,10 @@
// 02111-1307, USA.
//
// $Log$
+// Revision 1.5 2005/10/17 20:49:42 fraggle
+// Add dehacked "Misc" implementations for max armor+health, blue+green
+// armor classes
+//
// Revision 1.4 2005/10/03 21:39:39 fraggle
// Dehacked text substitutions
//
@@ -42,7 +46,7 @@
static const char
-rcsid[] = "$Id: p_inter.c 160 2005-10-03 21:39:39Z fraggle $";
+rcsid[] = "$Id: p_inter.c 207 2005-10-17 20:49:42Z fraggle $";
// Data.
@@ -51,6 +55,7 @@
#include "sounds.h"
#include "deh_main.h"
+#include "deh_misc.h"
#include "doomstat.h"
#include "m_random.h"
@@ -247,12 +252,12 @@
( player_t* player,
int num )
{
- if (player->health >= MAXHEALTH)
+ if (player->health >= deh_max_health)
return false;
player->health += num;
- if (player->health > MAXHEALTH)
- player->health = MAXHEALTH;
+ if (player->health > deh_max_health)
+ player->health = deh_max_health;
player->mo->health = player->health;
return true;
@@ -385,13 +390,13 @@
{
// armor
case SPR_ARM1:
- if (!P_GiveArmor (player, 1))
+ if (!P_GiveArmor (player, deh_green_armor_class))
return;
player->message = DEH_String(GOTARMOR);
break;
case SPR_ARM2:
- if (!P_GiveArmor (player, 2))
+ if (!P_GiveArmor (player, deh_blue_armor_class))
return;
player->message = DEH_String(GOTMEGA);
break;
@@ -407,10 +412,10 @@
case SPR_BON2:
player->armorpoints++; // can go over 100%
- if (player->armorpoints > 200)
- player->armorpoints = 200;
+ if (player->armorpoints > deh_max_armor)
+ player->armorpoints = deh_max_armor;
if (!player->armortype)
- player->armortype = 1;
+ player->armortype = deh_green_armor_class;
player->message = DEH_String(GOTARMBONUS);
break;
@@ -428,7 +433,7 @@
return;
player->health = 200;
player->mo->health = player->health;
- P_GiveArmor (player,2);
+ P_GiveArmor (player, deh_blue_armor_class);
player->message = DEH_String(GOTMSPHERE);
sound = sfx_getpow;
break;