[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