[chocolate-doom] 19/31: Start of Dehacked 'Misc' section support. Initial Health+Bullets, and bfg cells/shot are supported.
Jonathan Dowland
jmtd at moszumanska.debian.org
Mon Jan 30 15:07:01 UTC 2017
This is an automated email from the git hooks/post-receive script.
jmtd pushed a commit to annotated tag chocolate-doom-0.1.1
in repository chocolate-doom.
commit 4dc1ca199d444314dfeada9bf159a538edc50414
Author: Simon Howard <fraggle at gmail.com>
Date: Mon Oct 17 20:27:05 2005 +0000
Start of Dehacked 'Misc' section support. Initial Health+Bullets,
and bfg cells/shot are supported.
Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 206
---
src/Makefile.am | 4 +--
src/deh_misc.c | 82 ++++++++++++++++++++++++++++++++++++++++--
src/{deh_misc.c => deh_misc.h} | 46 ++++++++++++------------
src/g_game.c | 13 ++++---
src/p_pspr.c | 16 +++++----
5 files changed, 124 insertions(+), 37 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 786bfb5..e647290 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,8 +30,8 @@ dstrings.h i_system.c p_doors.c p_switch.c r_state.h mmus2mid.c \
d_textur.h i_system.h p_enemy.c p_telept.c r_things.c mmus2mid.h \
deh_defs.h deh_frame.c deh_main.c deh_ptr.c deh_text.c deh_thing.c \
deh_io.c deh_io.h deh_ammo.c deh_cheat.c deh_weapon.c \
-deh_misc.c deh_mapping.c deh_mapping.h deh_sound.c deh_main.h \
-w_merge.c w_merge.h doomfeatures.h
+deh_misc.c deh_misc.h deh_sound.c deh_main.h doomfeatures.h \
+w_merge.c w_merge.h deh_mapping.c deh_mapping.h
if HAVE_WINDRES
diff --git a/src/deh_misc.c b/src/deh_misc.c
index 2cbba2f..8bf5f21 100644
--- a/src/deh_misc.c
+++ b/src/deh_misc.c
@@ -1,7 +1,7 @@
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
-// $Id: deh_misc.c 175 2005-10-08 20:54:16Z fraggle $
+// $Id: deh_misc.c 206 2005-10-17 20:27:05Z fraggle $
//
// Copyright(C) 2005 Simon Howard
//
@@ -21,6 +21,10 @@
// 02111-1307, USA.
//
// $Log$
+// 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.
+//
// Revision 1.2 2005/10/08 20:54:16 fraggle
// Proper dehacked error/warning framework. Catch a load more errors.
//
@@ -34,19 +38,93 @@
//
//-----------------------------------------------------------------------------
+#include <stdlib.h>
+#include <string.h>
+
#include "doomdef.h"
#include "doomtype.h"
#include "deh_defs.h"
#include "deh_io.h"
+#include "deh_main.h"
+
+int deh_initial_health = 100;
+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
+int deh_max_soulsphere; // TODO
+int deh_soulsphere_health; // TODO
+int deh_megasphere_health; // TODO
+int deh_god_mode_health; // TODO
+int deh_idfa_armor; // TODO
+int deh_idfa_armor_class; // TODO
+int deh_idkfa_armor; // TODO
+int deh_idkfa_armor_class; // TODO
+int deh_bfg_cells_per_shot = 40;
+int deh_monsters_infight; // TODO
+
+static struct
+{
+ char *deh_name;
+ int *value;
+ boolean functional;
+} 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 Soulsphere", &deh_max_soulsphere},
+ {"Soulsphere Health", &deh_soulsphere_health},
+ {"Megasphere Health", &deh_megasphere_health},
+ {"God Mode Health", &deh_god_mode_health},
+ {"IDFA Armor", &deh_idfa_armor},
+ {"IDFA Armor Class", &deh_idfa_armor_class},
+ {"IDKFA Armor", &deh_idkfa_armor},
+ {"IDKFA Armor Class", &deh_idkfa_armor_class},
+ {"BFG Cells/Shot", &deh_bfg_cells_per_shot, true},
+ {"Monsters Infight", &deh_monsters_infight},
+};
static void *DEH_MiscStart(deh_context_t *context, char *line)
{
- DEH_Warning(context, "Dehacked 'Misc' sections are not supported yet.");
return NULL;
}
static void DEH_MiscParseLine(deh_context_t *context, char *line, void *tag)
{
+ char *variable_name, *value;
+ int ivalue;
+ int i;
+
+ if (!DEH_ParseAssignment(line, &variable_name, &value))
+ {
+ // Failed to parse
+
+ DEH_Warning(context, "Failed to parse assignment");
+ return;
+ }
+
+ ivalue = atoi(value);
+
+ for (i=0; i<sizeof(misc_settings) / sizeof(*misc_settings); ++i)
+ {
+ if (!strcasecmp(variable_name, misc_settings[i].deh_name))
+ {
+ if (!misc_settings[i].functional)
+ {
+ DEH_Warning(context, "Misc variable '%s' is not yet functional",
+ variable_name);
+ }
+
+ *misc_settings[i].value = ivalue;
+ return;
+ }
+ }
+
+ DEH_Warning(context, "Unknown Misc variable '%s'", variable_name);
}
deh_section_t deh_section_misc =
diff --git a/src/deh_misc.c b/src/deh_misc.h
similarity index 57%
copy from src/deh_misc.c
copy to src/deh_misc.h
index 2cbba2f..5e5a70d 100644
--- a/src/deh_misc.c
+++ b/src/deh_misc.h
@@ -1,7 +1,7 @@
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
-// $Id: deh_misc.c 175 2005-10-08 20:54:16Z fraggle $
+// $Id: deh_misc.h 206 2005-10-17 20:27:05Z fraggle $
//
// Copyright(C) 2005 Simon Howard
//
@@ -21,6 +21,10 @@
// 02111-1307, USA.
//
// $Log$
+// Revision 1.1 2005/10/17 20:27:05 fraggle
+// Start of Dehacked 'Misc' section support. Initial Health+Bullets,
+// and bfg cells/shot are supported.
+//
// Revision 1.2 2005/10/08 20:54:16 fraggle
// Proper dehacked error/warning framework. Catch a load more errors.
//
@@ -34,27 +38,25 @@
//
//-----------------------------------------------------------------------------
-#include "doomdef.h"
-#include "doomtype.h"
-#include "deh_defs.h"
-#include "deh_io.h"
-
-static void *DEH_MiscStart(deh_context_t *context, char *line)
-{
- DEH_Warning(context, "Dehacked 'Misc' sections are not supported yet.");
- return NULL;
-}
+#ifndef DEH_MISC_H
+#define DEH_MISC_H
-static void DEH_MiscParseLine(deh_context_t *context, char *line, void *tag)
-{
-}
+extern int deh_initial_health;
+extern int deh_initial_bullets;
+extern int deh_max_health;
+extern int deh_max_armor;
+extern int deh_green_armor_class;
+extern int deh_blue_armor_class;
+extern int deh_max_soulsphere;
+extern int deh_soulsphere_health;
+extern int deh_megasphere_health;
+extern int deh_god_mode_health;
+extern int deh_idfa_armor;
+extern int deh_idfa_armor_class;
+extern int deh_idkfa_armor;
+extern int deh_idkfa_armor_class;
+extern int deh_bfg_cells_per_shot;
+extern int deh_monsters_infight;
-deh_section_t deh_section_misc =
-{
- "Misc",
- NULL,
- DEH_MiscStart,
- DEH_MiscParseLine,
- NULL,
-};
+#endif /* #ifndef DEH_MISC_H */
diff --git a/src/g_game.c b/src/g_game.c
index a4e32d0..91b8699 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -1,7 +1,7 @@
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
-// $Id: g_game.c 204 2005-10-16 20:55:50Z fraggle $
+// $Id: g_game.c 206 2005-10-17 20:27:05Z fraggle $
//
// Copyright(C) 1993-1996 Id Software, Inc.
// Copyright(C) 2005 Simon Howard
@@ -22,6 +22,10 @@
// 02111-1307, USA.
//
// $Log$
+// Revision 1.16 2005/10/17 20:27:05 fraggle
+// Start of Dehacked 'Misc' section support. Initial Health+Bullets,
+// and bfg cells/shot are supported.
+//
// Revision 1.15 2005/10/16 20:55:50 fraggle
// Fix the '-cdrom' command-line option.
//
@@ -85,7 +89,7 @@
static const char
-rcsid[] = "$Id: g_game.c 204 2005-10-16 20:55:50Z fraggle $";
+rcsid[] = "$Id: g_game.c 206 2005-10-17 20:27:05Z fraggle $";
#include <string.h>
#include <stdlib.h>
@@ -94,6 +98,7 @@ rcsid[] = "$Id: g_game.c 204 2005-10-16 20:55:50Z fraggle $";
#include "doomstat.h"
#include "deh_main.h"
+#include "deh_misc.h"
#include "z_zone.h"
#include "f_finale.h"
@@ -924,11 +929,11 @@ void G_PlayerReborn (int player)
p->usedown = p->attackdown = true; // don't do anything immediately
p->playerstate = PST_LIVE;
- p->health = MAXHEALTH;
+ p->health = deh_initial_health; // Use dehacked value
p->readyweapon = p->pendingweapon = wp_pistol;
p->weaponowned[wp_fist] = true;
p->weaponowned[wp_pistol] = true;
- p->ammo[am_clip] = 50;
+ p->ammo[am_clip] = deh_initial_bullets;
for (i=0 ; i<NUMAMMO ; i++)
p->maxammo[i] = maxammo[i];
diff --git a/src/p_pspr.c b/src/p_pspr.c
index 1018222..cf56839 100644
--- a/src/p_pspr.c
+++ b/src/p_pspr.c
@@ -1,7 +1,7 @@
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
-// $Id: p_pspr.c 8 2005-07-23 16:44:57Z fraggle $
+// $Id: p_pspr.c 206 2005-10-17 20:27:05Z fraggle $
//
// Copyright(C) 1993-1996 Id Software, Inc.
// Copyright(C) 2005 Simon Howard
@@ -22,6 +22,10 @@
// 02111-1307, USA.
//
// $Log$
+// 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.
+//
// Revision 1.2 2005/07/23 16:44:56 fraggle
// Update copyright to GNU GPL
//
@@ -36,11 +40,12 @@
//-----------------------------------------------------------------------------
static const char
-rcsid[] = "$Id: p_pspr.c 8 2005-07-23 16:44:57Z fraggle $";
+rcsid[] = "$Id: p_pspr.c 206 2005-10-17 20:27:05Z fraggle $";
#include "doomdef.h"
#include "d_event.h"
+#include "deh_misc.h"
#include "m_random.h"
#include "p_local.h"
@@ -61,9 +66,6 @@ rcsid[] = "$Id: p_pspr.c 8 2005-07-23 16:44:57Z fraggle $";
#define WEAPONTOP 32*FRACUNIT
-// plasma cells for a bfg attack
-#define BFGCELLS 40
-
//
// P_SetPsprite
@@ -180,7 +182,7 @@ boolean P_CheckAmmo (player_t* player)
// Minimal amount for one shot varies.
if (player->readyweapon == wp_bfg)
- count = BFGCELLS;
+ count = deh_bfg_cells_per_shot;
else if (player->readyweapon == wp_supershotgun)
count = 2; // Double barrel.
else
@@ -578,7 +580,7 @@ A_FireBFG
( player_t* player,
pspdef_t* psp )
{
- player->ammo[weaponinfo[player->readyweapon].ammo] -= BFGCELLS;
+ player->ammo[weaponinfo[player->readyweapon].ammo] -= deh_bfg_cells_per_shot;
P_SpawnPlayerMissile (player->mo, MT_BFG);
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/chocolate-doom.git
More information about the Pkg-games-commits
mailing list