diff options
author | Simon Howard | 2005-10-17 20:49:42 +0000 |
---|---|---|
committer | Simon Howard | 2005-10-17 20:49:42 +0000 |
commit | ae8ca20a1d02dade7bc0d8feb09225d91e53f3be (patch) | |
tree | 74b5a37dde1a0f1c8e0c2adae155b682f86c14a6 | |
parent | 4dc1ca199d444314dfeada9bf159a538edc50414 (diff) | |
download | chocolate-doom-ae8ca20a1d02dade7bc0d8feb09225d91e53f3be.tar.gz chocolate-doom-ae8ca20a1d02dade7bc0d8feb09225d91e53f3be.tar.bz2 chocolate-doom-ae8ca20a1d02dade7bc0d8feb09225d91e53f3be.zip |
Add dehacked "Misc" implementations for max armor+health, blue+green
armor classes
Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 207
-rw-r--r-- | src/deh_misc.c | 66 | ||||
-rw-r--r-- | src/p_inter.c | 27 |
2 files changed, 73 insertions, 20 deletions
diff --git a/src/deh_misc.c b/src/deh_misc.c index 8bf5f21c..9af0fbac 100644 --- 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; // TODO 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 @@ static struct } 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}, diff --git a/src/p_inter.c b/src/p_inter.c index f581f0e0..7a88ede2 100644 --- 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 @@ rcsid[] = "$Id: p_inter.c 160 2005-10-03 21:39:39Z fraggle $"; #include "sounds.h" #include "deh_main.h" +#include "deh_misc.h" #include "doomstat.h" #include "m_random.h" @@ -247,12 +252,12 @@ P_GiveBody ( 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 @@ P_TouchSpecialThing { // 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 @@ P_TouchSpecialThing 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 @@ P_TouchSpecialThing 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; |