- use spritedefs for panel sprites.

This commit is contained in:
Christoph Oelckers 2023-05-28 23:40:23 +02:00
parent 6c0696dd26
commit bf8cdad155
17 changed files with 1001 additions and 904 deletions

View file

@ -675,6 +675,36 @@ void FMapInfoParser::ParseSurfaceTypes()
//
//==========================================================================
void FMapInfoParser::ParseReplaceTexture()
{
sc.MustGetString();
textureReplace.Reserve(1);
textureReplace.Last().group = sc.String;
sc.MustGetStringName("{");
while (!sc.CheckString("}"))
{
sc.MustGetString();
auto tex = TexMan.CheckForTexture(sc.String, ETextureType::Any);
if (!tex.isValid())
sc.ScriptMessage("'%s': Unknown texture", sc.String);
ParseAssign();
sc.MustGetString();
auto tex2 = TexMan.CheckForTexture(sc.String, ETextureType::Any);
if (!tex2.isValid())
sc.ScriptMessage("'%s': Unknown texture", sc.String);
textureReplace.Last().replacements.Push(std::make_pair(tex, tex2));
}
}
//==========================================================================
//
//
//
//==========================================================================
void FMapInfoParser::ParseCutscene(CutsceneDef& cdef)
{
FString sound;
@ -1758,6 +1788,10 @@ void FMapInfoParser::ParseMapInfo (int lump, MapRecord &gamedefaults, MapRecord
{
ParseSurfaceTypes();
}
else if (sc.Compare("texturereplace"))
{
ParseReplaceTexture();
}
else if (sc.Compare("constants"))
{
ParseConstants();

View file

@ -77,6 +77,13 @@ using BreakWallMap = TMap<int, BreakWallRec>;
inline BreakWallMap breakWallMap;
inline BreakWallMap breakCeilingMap;
struct TextureReplace
{
FName group;
TArray<std::pair<FTextureID, FTextureID>> replacements;
};
inline TArray<TextureReplace> textureReplace;
struct FMapInfoParser
{
FScanner sc;
@ -107,6 +114,7 @@ struct FMapInfoParser
void ParseTextureFlags();
void ParseSurfaceTypes();
void ParseSwitches();
void ParseReplaceTexture();
void ParseConstants();
void ParseMapInfo (int lump, MapRecord &gamedefaults, MapRecord &defaultinfo);

View file

@ -42,6 +42,7 @@
#include "raze_sound.h"
#include "zstring.h"
#include "statistics.h"
#include "g_mapinfo.h"
FString gSkillNames[MAXSKILLS];
int gDefaultVolume = 0, gDefaultSkill = 1;
@ -275,3 +276,20 @@ void MapLocals::fillSummary(SummaryInfo& sum)
sum.time = PlayClock;
// todo: centralize the remaining info as well.
}
FTextureID GetTextureReplacement(FTextureID base, FName reason)
{
// this won't become long enough to cover the static overhead of a map
for (auto& g : textureReplace)
{
if (g.group == reason)
{
for(auto&t : g.replacements)
{
if (base == t.first) return t.second;
}
}
}
return base;
}

View file

@ -8,6 +8,7 @@
#include "screenjob.h"
#include "maptypes.h"
#include "d_net.h"
#include "textureid.h"
#ifdef GetMessage
#undef GetMessage // Windows strikes...
@ -316,6 +317,7 @@ ClusterDef* FindCluster(int index);
ClusterDef* AllocateCluster();
VolumeRecord* AllocateVolume();
void SetLevelNum(MapRecord* info, int num);
FTextureID GetTextureReplacement(FTextureID base, FName reason);
inline VolumeRecord* MustFindVolume(int index)
{

View file

@ -100,4 +100,9 @@ xx(ExtraSound5)
xx(ExtraSound6)
xx(CloseAttackPercent)
xx(AttackPercent)
xx(BloodMissileBase)
xx(BloodMissileBase)
xx(Darts)
xx(Bloody)
xx(Shotgun2)

View file

@ -61,12 +61,11 @@
FSerializer &FRazeSerializer::Sprite(const char *key, int32_t &spritenum, int32_t *def)
{
#if 0
if (isWriting())
{
if (w->inObject() && def != nullptr && *def == spritenum) return *this;
WriteKey(key);
w->String(sprites[spritenum].name);
w->String(SpriteDefs[spritenum].name.GetChars());
}
else
{
@ -76,9 +75,9 @@ FSerializer &FRazeSerializer::Sprite(const char *key, int32_t &spritenum, int32_
if (val->IsString())
{
FName name = val->GetString();
for (auto hint = NumStdSprites; hint-- != 0; )
for (auto hint = SpriteDefs.Size(); hint-- != 0; )
{
if (sprites[hint].dwName == name)
if (SpriteDefs[hint].name == name)
{
spritenum = hint;
break;
@ -87,7 +86,6 @@ FSerializer &FRazeSerializer::Sprite(const char *key, int32_t &spritenum, int32_
}
}
}
#endif
return *this;
}

View file

@ -28,10 +28,7 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#include "names2.h"
//#include "panel.h"
#ifdef MAKE_CONPIC_ENUM
#define CONPIC_ENTRY(tile,name) ID_ ## name = tile,
#endif
#if 0
////////////////////////////////////////////////////////////////////////////////
//
// SWORD
@ -43,30 +40,11 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
#define SWORD_SWING1 2082
#define SWORD_SWING2 2083
CONPIC_ENTRY(SWORD_REST+0,SwordPresent0)
CONPIC_ENTRY(SWORD_SWING0,SwordSwing0)
CONPIC_ENTRY(SWORD_SWING1,SwordSwing1)
CONPIC_ENTRY(SWORD_SWING2,SwordSwing2)
CONPIC_ENTRY(SWORD_SWING0,SwordSwingR0)
CONPIC_ENTRY(SWORD_SWING1,SwordSwingR1)
CONPIC_ENTRY(SWORD_SWING2,SwordSwingR2)
#define BLOODYSWORD_REST 4090
#define BLOODYSWORD_SWING0 4091
#define BLOODYSWORD_SWING1 4092
#define BLOODYSWORD_SWING2 4093
CONPIC_ENTRY(BLOODYSWORD_REST,BloodySwordPresent0)
CONPIC_ENTRY(BLOODYSWORD_SWING0,BloodySwordSwing0)
CONPIC_ENTRY(BLOODYSWORD_SWING1,BloodySwordSwing1)
CONPIC_ENTRY(BLOODYSWORD_SWING2,BloodySwordSwing2)
CONPIC_ENTRY(BLOODYSWORD_SWING0,BloodySwordSwingR0)
CONPIC_ENTRY(BLOODYSWORD_SWING1,BloodySwordSwingR1)
CONPIC_ENTRY(BLOODYSWORD_SWING2,BloodySwordSwingR2)
////////////////////////////////////////////////////////////////////////////////
//
@ -74,49 +52,13 @@ CONPIC_ENTRY(BLOODYSWORD_SWING2,BloodySwordSwingR2)
//
////////////////////////////////////////////////////////////////////////////////
#define FIST_REST 4070
#define FIST_SWING0 4071
#define FIST_SWING1 4072
#define FIST_SWING2 4073
CONPIC_ENTRY(FIST_REST+0,FistPresent0)
CONPIC_ENTRY(FIST_SWING0,FistSwing0)
CONPIC_ENTRY(FIST_SWING1,FistSwing1)
CONPIC_ENTRY(FIST_SWING2,FistSwing2)
#define BLOODYFIST_REST 4074
#define BLOODYFIST_SWING0 4075
#define BLOODYFIST_SWING1 4076
#define BLOODYFIST_SWING2 4077
#define FIST2_REST 4050
#define FIST2_SWING0 4051
#define FIST2_SWING1 4052
#define FIST2_SWING2 4053
CONPIC_ENTRY(FIST2_REST+0,Fist2Present0)
CONPIC_ENTRY(FIST2_SWING0,Fist2Swing0)
CONPIC_ENTRY(FIST2_SWING1,Fist2Swing1)
CONPIC_ENTRY(FIST2_SWING2,Fist2Swing2)
#define BLOODYFIST2_REST 4054
#define BLOODYFIST2_SWING0 4055
#define BLOODYFIST2_SWING1 4056
#define BLOODYFIST2_SWING2 4057
#define FIST2_SWING_ALT 4058
#define FIST3_REST 4060
#define FIST3_SWING0 4061
#define FIST3_SWING1 4062
#define FIST3_SWING2 4063
CONPIC_ENTRY(FIST3_REST+0,Fist3Present0)
CONPIC_ENTRY(FIST3_SWING0,Fist3Swing0)
CONPIC_ENTRY(FIST3_SWING1,Fist3Swing1)
CONPIC_ENTRY(FIST3_SWING2,Fist3Swing2)
#define BLOODYFIST3_REST 4064
#define BLOODYFIST3_SWING0 4065
#define BLOODYFIST3_SWING1 4066
@ -131,9 +73,6 @@ CONPIC_ENTRY(FIST3_SWING2,Fist3Swing2)
#define KICK0 4080
#define KICK1 4081
CONPIC_ENTRY(KICK0,Kick0)
CONPIC_ENTRY(KICK1,Kick1)
#define BLOODYKICK0 4082
#define BLOODYKICK1 4083
@ -145,18 +84,22 @@ CONPIC_ENTRY(KICK1,Kick1)
///////////////////////////////////////////////////////////////////////////////
#define STAR_REST 2130
#define STAR_THROW 2133
#define STAR_DOWN0 2131
#define STAR_DOWN1 2132
#define STAR_THROW0 2134
#define STAR_THROW1 2135
#define STAR_THROW2 2136
#define STAR_THROW3 2137
#define STAR_THROW4 2138
CONPIC_ENTRY(STAR_REST+0,StarPresent0)
CONPIC_ENTRY(STAR_REST+1,StarDown0)
CONPIC_ENTRY(STAR_REST+2,StarDown1)
CONPIC_ENTRY(STAR_THROW+0,ThrowStar0)
CONPIC_ENTRY(STAR_THROW+1,ThrowStar1)
CONPIC_ENTRY(STAR_THROW+2,ThrowStar2)
CONPIC_ENTRY(STAR_THROW+3,ThrowStar3)
CONPIC_ENTRY(STAR_THROW+4,ThrowStar4)
#define DART_REST 2510
#define DART_DOWN0 2511
#define DART_DOWN1 2512
#define DART_THROW0 2514
#define DART_THROW1 2515
#define DART_THROW2 2516
#define DART_THROW3 2517
#define DART_THROW4 2518
///////////////////////////////////////////////////////////////////////////////////////
//
@ -164,59 +107,21 @@ CONPIC_ENTRY(STAR_THROW+4,ThrowStar4)
//
///////////////////////////////////////////////////////////////////////////////////////
#if 0
#define UZI_REST 2000
#define UZI_FIRE_0 2001
#define UZI_FIRE_1 2001
#define UZI_EJECT 2003
#define UZI_CLIP 2005
#define UZI_RELOAD 2007
#else
// silencer
#define UZI_REST 2004
#define UZI_FIRE_0 2006
#define UZI_FIRE_1 2008
#define UZI_EJECT 2009
#define UZI_CLIP 2005
#define UZI_RELOAD 2007
#endif
#define CON_UZI_SHELL 2152
#define CON_UZI_SHELL0 2152
#define CON_UZI_SHELL1 2153
#define CON_UZI_SHELL2 2154
#define CON_UZI_SHELL3 2155
#define CON_UZI_SHELL4 2156
#define CON_UZI_SHELL5 2157
// RIGHT UZI
CONPIC_ENTRY(UZI_REST,UziPresent0)
CONPIC_ENTRY(UZI_FIRE_0,UziFire0)
CONPIC_ENTRY(UZI_FIRE_1,UziFire1)
// LEFT UZI
CONPIC_ENTRY(UZI_REST,Uzi2Present0)
CONPIC_ENTRY(UZI_FIRE_0,Uzi2Fire0)
CONPIC_ENTRY(UZI_FIRE_1,Uzi2Fire1)
//eject
CONPIC_ENTRY(UZI_EJECT,UziEject0)
//clip
CONPIC_ENTRY(UZI_CLIP,UziClip0)
//reload
CONPIC_ENTRY(UZI_RELOAD,UziReload0)
CONPIC_ENTRY(CON_UZI_SHELL+0,UziShell0)
CONPIC_ENTRY(CON_UZI_SHELL+1,UziShell1)
CONPIC_ENTRY(CON_UZI_SHELL+2,UziShell2)
CONPIC_ENTRY(CON_UZI_SHELL+3,UziShell3)
CONPIC_ENTRY(CON_UZI_SHELL+4,UziShell4)
CONPIC_ENTRY(CON_UZI_SHELL+5,UziShell5)
CONPIC_ENTRY(CON_UZI_SHELL+0,Uzi2Shell0)
CONPIC_ENTRY(CON_UZI_SHELL+1,Uzi2Shell1)
CONPIC_ENTRY(CON_UZI_SHELL+2,Uzi2Shell2)
CONPIC_ENTRY(CON_UZI_SHELL+3,Uzi2Shell3)
CONPIC_ENTRY(CON_UZI_SHELL+4,Uzi2Shell4)
CONPIC_ENTRY(CON_UZI_SHELL+5,Uzi2Shell5)
////////////////////////////////////////////////////////////////////////////////
//
@ -225,31 +130,20 @@ CONPIC_ENTRY(CON_UZI_SHELL+5,Uzi2Shell5)
////////////////////////////////////////////////////////////////////////////////
#define SHOTGUN_REST 2213
#define SHOTGUN_FIRE 2214
#define SHOTGUN_FIRE0 2214
#define SHOTGUN_FIRE1 2215
#define SHOTGUN_RELOAD0 2216
#define SHOTGUN_RELOAD1 2211
#define SHOTGUN_RELOAD2 2212
CONPIC_ENTRY(SHOTGUN_REST,ShotgunPresent0)
CONPIC_ENTRY(SHOTGUN_REST,ShotgunRest0)
CONPIC_ENTRY(SHOTGUN_RELOAD0,ShotgunReload0)
CONPIC_ENTRY(SHOTGUN_RELOAD1,ShotgunReload1)
CONPIC_ENTRY(SHOTGUN_RELOAD2,ShotgunReload2)
CONPIC_ENTRY(SHOTGUN_FIRE+0,ShotgunFire0)
CONPIC_ENTRY(SHOTGUN_FIRE+1,ShotgunFire1)
#define SHOTGUN_SHELL 2180
CONPIC_ENTRY(SHOTGUN_SHELL+0,ShotgunShell0)
CONPIC_ENTRY(SHOTGUN_SHELL+1,ShotgunShell1)
CONPIC_ENTRY(SHOTGUN_SHELL+2,ShotgunShell2)
CONPIC_ENTRY(SHOTGUN_SHELL+3,ShotgunShell3)
CONPIC_ENTRY(SHOTGUN_SHELL+4,ShotgunShell4)
CONPIC_ENTRY(SHOTGUN_SHELL+5,ShotgunShell5)
CONPIC_ENTRY(SHOTGUN_SHELL+6,ShotgunShell6)
CONPIC_ENTRY(SHOTGUN_SHELL+7,ShotgunShell7)
#define SHOTGUN_SHELL0 2180
#define SHOTGUN_SHELL1 2181
#define SHOTGUN_SHELL2 2182
#define SHOTGUN_SHELL3 2183
#define SHOTGUN_SHELL4 2184
#define SHOTGUN_SHELL5 2185
#define SHOTGUN_SHELL6 2186
#define SHOTGUN_SHELL7 2187
////////////////////////////////////////////////////////////////////////////////
//
@ -260,40 +154,22 @@ CONPIC_ENTRY(SHOTGUN_SHELL+7,ShotgunShell7)
#define ROCKET_REST 2211
#define ROCKET_FIRE 2212
CONPIC_ENTRY(ROCKET_REST+0,RocketPresent0)
CONPIC_ENTRY(ROCKET_REST+0,RocketRest0)
CONPIC_ENTRY(ROCKET_FIRE+0,RocketFire0)
CONPIC_ENTRY(ROCKET_FIRE+1,RocketFire1)
CONPIC_ENTRY(ROCKET_FIRE+2,RocketFire2)
CONPIC_ENTRY(ROCKET_FIRE+3,RocketFire3)
CONPIC_ENTRY(ROCKET_FIRE+4,RocketFire4)
CONPIC_ENTRY(ROCKET_FIRE+5,RocketFire5)
////////////////////////////////////////////////////////////////////////////////
//
// RAIL
//
////////////////////////////////////////////////////////////////////////////////
#define RAIL_REST 2010
#define RAIL_CHARGE 2015
#define RAIL_FIRE 2018
CONPIC_ENTRY(RAIL_REST+0,RailPresent0)
CONPIC_ENTRY(RAIL_REST+0,RailRest0)
CONPIC_ENTRY(RAIL_REST+1,RailRest1)
CONPIC_ENTRY(RAIL_REST+2,RailRest2)
CONPIC_ENTRY(RAIL_REST+3,RailRest3)
CONPIC_ENTRY(RAIL_REST+4,RailRest4)
CONPIC_ENTRY(RAIL_FIRE+0,RailFire0)
CONPIC_ENTRY(RAIL_FIRE+1,RailFire1)
CONPIC_ENTRY(RAIL_CHARGE+0,RailCharge0)
CONPIC_ENTRY(RAIL_CHARGE+1,RailCharge1)
CONPIC_ENTRY(RAIL_CHARGE+2,RailCharge2)
#define RAIL_REST0 2010
#define RAIL_REST1 2011
#define RAIL_REST2 2012
#define RAIL_REST3 2013
#define RAIL_REST4 2014
#define RAIL_CHARGE0 2015
#define RAIL_CHARGE1 2016
#define RAIL_CHARGE2 2017
#define RAIL_FIRE0 2018
#define RAIL_FIRE1 2019
////////////////////////////////////////////////////////////////////////////////
//
@ -301,42 +177,29 @@ CONPIC_ENTRY(RAIL_CHARGE+2,RailCharge2)
//
////////////////////////////////////////////////////////////////////////////////
//#define HOTHEAD_REST 2327
//#define HOTHEAD_ATTACK 2327
#define HOTHEAD_REST 2048
#define HOTHEAD_ATTACK 2049
#define HOTHEAD_CENTER 2327
#define HOTHEAD_TURN 2314
#define HOTHEAD_TURN0 2314
#define HOTHEAD_TURN1 2315
#define HOTHEAD_TURN2 2316
#define HOTHEAD_TURN3 2317
#define HOTHEAD_CHOMP 2318
CONPIC_ENTRY(HOTHEAD_REST+0,HotheadPresent0)
CONPIC_ENTRY(HOTHEAD_REST+0,HotheadRest0)
CONPIC_ENTRY(HOTHEAD_ATTACK+0,HotheadAttack0)
CONPIC_ENTRY(HOTHEAD_CENTER+0,HotheadCenter0)
CONPIC_ENTRY(HOTHEAD_TURN+0,HotheadTurn0)
CONPIC_ENTRY(HOTHEAD_TURN+1,HotheadTurn1)
CONPIC_ENTRY(HOTHEAD_TURN+2,HotheadTurn2)
CONPIC_ENTRY(HOTHEAD_TURN+3,HotheadTurn3)
CONPIC_ENTRY(HOTHEAD_CHOMP+0,HotheadChomp0)
#define ON_FIRE 3157
CONPIC_ENTRY(ON_FIRE+0,OnFire0)
CONPIC_ENTRY(ON_FIRE+1,OnFire1)
CONPIC_ENTRY(ON_FIRE+2,OnFire2)
CONPIC_ENTRY(ON_FIRE+3,OnFire3)
CONPIC_ENTRY(ON_FIRE+4,OnFire4)
CONPIC_ENTRY(ON_FIRE+5,OnFire5)
CONPIC_ENTRY(ON_FIRE+6,OnFire6)
CONPIC_ENTRY(ON_FIRE+7,OnFire7)
CONPIC_ENTRY(ON_FIRE+8,OnFire8)
CONPIC_ENTRY(ON_FIRE+9,OnFire9)
CONPIC_ENTRY(ON_FIRE+10,OnFire10)
CONPIC_ENTRY(ON_FIRE+11,OnFire11)
CONPIC_ENTRY(ON_FIRE+12,OnFire12)
#define ON_FIRE0 3157
#define ON_FIRE1 3158
#define ON_FIRE2 3159
#define ON_FIRE3 3160
#define ON_FIRE4 3161
#define ON_FIRE5 3162
#define ON_FIRE6 3163
#define ON_FIRE7 3164
#define ON_FIRE8 3165
#define ON_FIRE9 3166
#define ON_FIRE10 3167
#define ON_FIRE11 3168
#define ON_FIRE12 3169
////////////////////////////////////////////////////////////////////////////////
//
@ -345,71 +208,11 @@ CONPIC_ENTRY(ON_FIRE+12,OnFire12)
////////////////////////////////////////////////////////////////////////////////
#define MICRO_REST 2070
#define MICRO_FIRE 2071
#define MICRO_SINGLE_FIRE 2071
#define MICRO_FIRE0 2071
#define MICRO_FIRE1 2072
#define MICRO_FIRE2 2073
#define MICRO_FIRE3 2074
CONPIC_ENTRY(MICRO_REST+0,MicroPresent0)
CONPIC_ENTRY(MICRO_FIRE+0,MicroFire0)
CONPIC_ENTRY(MICRO_FIRE+1,MicroFire1)
CONPIC_ENTRY(MICRO_FIRE+2,MicroFire2)
CONPIC_ENTRY(MICRO_FIRE+3,MicroFire3)
CONPIC_ENTRY(MICRO_SINGLE_FIRE+0,MicroSingleFire0)
CONPIC_ENTRY(MICRO_SINGLE_FIRE+1,MicroSingleFire1)
CONPIC_ENTRY(MICRO_SINGLE_FIRE+2,MicroSingleFire2)
CONPIC_ENTRY(MICRO_SINGLE_FIRE+3,MicroSingleFire3)
#if 0
////////////////////////////////////////////////////////////////////////////////
//
// NAPALM
//
////////////////////////////////////////////////////////////////////////////////
#define NAPALM_REST 2020
#define NAPALM_FIRE 2021
CONPIC_ENTRY(NAPALM_REST+0,NapalmPresent0)
CONPIC_ENTRY(NAPALM_FIRE+0,NapalmFire0)
CONPIC_ENTRY(NAPALM_FIRE+1,NapalmFire1)
CONPIC_ENTRY(NAPALM_FIRE+2,NapalmFire2)
CONPIC_ENTRY(NAPALM_FIRE+3,NapalmFire3)
////////////////////////////////////////////////////////////////////////////////
//
// RING
//
////////////////////////////////////////////////////////////////////////////////
#define RING_REST 2020
#define RING_FIRE 2021
CONPIC_ENTRY(RING_REST+0,RingPresent0)
CONPIC_ENTRY(RING_FIRE+0,RingFire0)
CONPIC_ENTRY(RING_FIRE+1,RingFire1)
CONPIC_ENTRY(RING_FIRE+2,RingFire2)
CONPIC_ENTRY(RING_FIRE+3,RingFire3)
////////////////////////////////////////////////////////////////////////////////
//
// ELECTRO
//
////////////////////////////////////////////////////////////////////////////////
#define ELECTRO_REST 2020
#define ELECTRO_FIRE 2021
CONPIC_ENTRY(ELECTRO_REST+0,ElectroPresent0)
CONPIC_ENTRY(ELECTRO_FIRE+0,ElectroFire0)
CONPIC_ENTRY(ELECTRO_FIRE+1,ElectroFire1)
CONPIC_ENTRY(ELECTRO_FIRE+2,ElectroFire2)
CONPIC_ENTRY(ELECTRO_FIRE+3,ElectroFire3)
#endif
////////////////////////////////////////////////////////////////////////////////
//
@ -418,17 +221,12 @@ CONPIC_ENTRY(ELECTRO_FIRE+3,ElectroFire3)
////////////////////////////////////////////////////////////////////////////////
#define GRENADE_REST 2121
#define GRENADE_FIRE 2122
#define GRENADE_RELOAD 2125
#define GRENADE_FIRE0 2122
#define GRENADE_FIRE1 2123
#define GRENADE_FIRE2 2124
#define GRENADE_RELOAD0 2125
#define GRENADE_RELOAD1 2126
CONPIC_ENTRY(GRENADE_REST+0,GrenadePresent0)
CONPIC_ENTRY(GRENADE_FIRE+0,GrenadeFire0)
CONPIC_ENTRY(GRENADE_FIRE+1,GrenadeFire1)
CONPIC_ENTRY(GRENADE_FIRE+2,GrenadeFire2)
CONPIC_ENTRY(GRENADE_RELOAD+0,GrenadeReload0)
CONPIC_ENTRY(GRENADE_RELOAD+1,GrenadeReload1)
////////////////////////////////////////////////////////////////////////////////
//
@ -436,16 +234,9 @@ CONPIC_ENTRY(GRENADE_RELOAD+1,GrenadeReload1)
//
////////////////////////////////////////////////////////////////////////////////
#define MINE_REST 2220
#define MINE_REST0 2220
#define MINE_REST1 2221
#define MINE_THROW 2222
#define MINE_RELOAD 2222
CONPIC_ENTRY(MINE_REST+0,MinePresent0)
CONPIC_ENTRY(MINE_REST+1,MinePresent1)
CONPIC_ENTRY(MINE_THROW+0,MineThrow0)
CONPIC_ENTRY(MINE_RELOAD+0,MineReload0)
////////////////////////////////////////////////////////////////////////////////
//
@ -453,27 +244,27 @@ CONPIC_ENTRY(MINE_RELOAD+0,MineReload0)
//
////////////////////////////////////////////////////////////////////////////////
#define HEART_REST 2050
#define HEART_REST0 2050
#define HEART_REST1 2051
#define HEART_ATTACK0 2052
#define HEART_ATTACK1 2053
#define HEART_ATTACK 2052
CONPIC_ENTRY(HEART_REST+0,HeartPresent0)
CONPIC_ENTRY(HEART_REST+1,HeartPresent1)
#define HEART_BLOOD0 2420
#define HEART_BLOOD1 2421
#define HEART_BLOOD2 2422
#define HEART_BLOOD3 2423
#define HEART_BLOOD4 2424
#define HEART_BLOOD5 2425
CONPIC_ENTRY(HEART_ATTACK+0,HeartAttack0)
CONPIC_ENTRY(HEART_ATTACK+1,HeartAttack1)
//#define HEART_BLOOD 2430
#define HEART_BLOOD 2420
CONPIC_ENTRY(HEART_BLOOD+0,HeartBlood0)
CONPIC_ENTRY(HEART_BLOOD+1,HeartBlood1)
CONPIC_ENTRY(HEART_BLOOD+2,HeartBlood2)
CONPIC_ENTRY(HEART_BLOOD+3,HeartBlood3)
CONPIC_ENTRY(HEART_BLOOD+4,HeartBlood4)
CONPIC_ENTRY(HEART_BLOOD+5,HeartBlood5)
#undef CONPIC_ENTRY
#define PanelEnvironSuit 2397
#define ChopsRest 2000
#define ChopsOpen 2001
#define ChopsClose 2002
#endif

View file

@ -357,7 +357,7 @@ typedef void (*soANIMATORp) (SECTOR_OBJECT*);
}
#define x(a) SPR_##a,
enum spriteindex_t
enum spriteindex_t : unsigned
{
SPR_NULL = 0,
@ -902,7 +902,9 @@ enum
enum ETexFlags
{
TFLAG_BUNNYFRIENDLY = 1, // bunnies like to stay in sectors with this as floor.
TFLAG_BUNNYFRIENDLY = 1, // bunnies like to stay in sectors with this as floor.
TFLAG_PANELUSERPAL = 2, // uses the player's palette when shown as panel sprite
TFLAG_FISTFLIP = 4, // 'temporary hack to fix fist artifacts until a solution is found in the panel system itself' - apparently the solution was never found...
};
enum ESurfType

View file

@ -816,3 +816,132 @@ x(BUNNY_DEAD, 4584)
x(GIRLNINJA_DEAD, 5205)
x(COOLG_DEAD, 4312)
x(Player_HeadFly, 1134)
x(SWORD_REST, 2080)
x(SWORD_SWING0, 2081)
x(SWORD_SWING1, 2082)
x(SWORD_SWING2, 2083)
x(BLOODYSWORD_REST, 4090)
x(BLOODYSWORD_SWING0, 4091)
x(BLOODYSWORD_SWING1, 4092)
x(BLOODYSWORD_SWING2, 4093)
x(FIST2_SWING_ALT, 4058)
x(FIST3_REST, 4060)
x(FIST3_SWING0, 4061)
x(FIST3_SWING1, 4062)
x(FIST3_SWING2, 4063)
x(BLOODYFIST3_REST, 4064)
x(BLOODYFIST3_SWING0, 4065)
x(BLOODYFIST3_SWING1, 4066)
x(BLOODYFIST3_SWING2, 4067)
x(KICK0, 4080)
x(KICK1, 4081)
x(BLOODYKICK0, 4082)
x(BLOODYKICK1, 4083)
x(STAR_REST, 2130)
x(STAR_DOWN0, 2131)
x(STAR_DOWN1, 2132)
x(STAR_THROW0, 2134)
x(STAR_THROW1, 2135)
x(STAR_THROW2, 2136)
x(STAR_THROW3, 2137)
x(STAR_THROW4, 2138)
x(DART_REST, 2510)
x(DART_DOWN0, 2511)
x(DART_DOWN1, 2512)
x(DART_THROW0, 2514)
x(DART_THROW1, 2515)
x(DART_THROW2, 2516)
x(DART_THROW3, 2517)
x(DART_THROW4, 2518)
x(UZI_REST, 2004)
x(UZI_FIRE_0, 2006)
x(UZI_FIRE_1, 2008)
x(UZI_EJECT, 2009)
x(UZI_CLIP, 2005)
x(UZI_RELOAD, 2007)
x(CON_UZI_SHELL0, 2152)
x(CON_UZI_SHELL1, 2153)
x(CON_UZI_SHELL2, 2154)
x(CON_UZI_SHELL3, 2155)
x(CON_UZI_SHELL4, 2156)
x(CON_UZI_SHELL5, 2157)
x(SHOTGUN_REST, 2213)
x(SHOTGUN_FIRE0, 2214)
x(SHOTGUN_FIRE1, 2215)
x(SHOTGUN_RELOAD0, 2216)
x(SHOTGUN_RELOAD1, 2211)
x(SHOTGUN_RELOAD2, 2212)
x(SHOTGUN_SHELL0, 2180)
x(SHOTGUN_SHELL1, 2181)
x(SHOTGUN_SHELL2, 2182)
x(SHOTGUN_SHELL3, 2183)
x(SHOTGUN_SHELL4, 2184)
x(SHOTGUN_SHELL5, 2185)
x(SHOTGUN_SHELL6, 2186)
x(SHOTGUN_SHELL7, 2187)
x(ROCKET_REST, 2211)
x(ROCKET_FIRE, 2212)
x(RAIL_REST0, 2010)
x(RAIL_REST1, 2011)
x(RAIL_REST2, 2012)
x(RAIL_REST3, 2013)
x(RAIL_REST4, 2014)
x(RAIL_CHARGE0, 2015)
x(RAIL_CHARGE1, 2016)
x(RAIL_CHARGE2, 2017)
x(RAIL_FIRE0, 2018)
x(RAIL_FIRE1, 2019)
x(HOTHEAD_REST, 2048)
x(HOTHEAD_ATTACK, 2049)
x(HOTHEAD_CENTER, 2327)
x(HOTHEAD_TURN0, 2314)
x(HOTHEAD_TURN1, 2315)
x(HOTHEAD_TURN2, 2316)
x(HOTHEAD_TURN3, 2317)
x(HOTHEAD_CHOMP, 2318)
x(ON_FIRE0, 3157)
x(ON_FIRE1, 3158)
x(ON_FIRE2, 3159)
x(ON_FIRE3, 3160)
x(ON_FIRE4, 3161)
x(ON_FIRE5, 3162)
x(ON_FIRE6, 3163)
x(ON_FIRE7, 3164)
x(ON_FIRE8, 3165)
x(ON_FIRE9, 3166)
x(ON_FIRE10, 3167)
x(ON_FIRE11, 3168)
x(ON_FIRE12, 3169)
x(MICRO_REST, 2070)
x(MICRO_FIRE0, 2071)
x(MICRO_FIRE1, 2072)
x(MICRO_FIRE2, 2073)
x(MICRO_FIRE3, 2074)
x(GRENADE_REST, 2121)
x(GRENADE_FIRE0, 2122)
x(GRENADE_FIRE1, 2123)
x(GRENADE_FIRE2, 2124)
x(GRENADE_RELOAD0, 2125)
x(GRENADE_RELOAD1, 2126)
x(MINE_REST0, 2220)
x(MINE_REST1, 2221)
x(MINE_THROW, 2222)
x(HEART_REST0, 2050)
x(HEART_REST1, 2051)
x(HEART_ATTACK0, 2052)
x(HEART_ATTACK1, 2053)
x(HEART_BLOOD0, 2420)
x(HEART_BLOOD1, 2421)
x(HEART_BLOOD2, 2422)
x(HEART_BLOOD3, 2423)
x(HEART_BLOOD4, 2424)
x(HEART_BLOOD5, 2425)
x(PanelEnvironSuit, 2397)
x(ChopsRest, 2000)
x(ChopsOpen, 2001)
x(ChopsClose, 2002)
x(FIST2_REST, 4050)
x(FIST2_SWING0, 4051)
x(FIST2_SWING1, 4052)
x(FIST2_SWING2, 4053)

File diff suppressed because it is too large Load diff

View file

@ -57,7 +57,7 @@ enum PanelSpriteIDs
struct PANEL_STATE
{
short picndx; // for pip stuff in conpic.h
int Sprite; // for pip stuff in conpic.h
int tics;
//void (*Animator)(PANEL_SPRITE*); // JBF: return type was long
VMNativeFunction** Animator;
@ -120,8 +120,8 @@ public:
PANEL_SPRITE_OVERLAY over[8];
PANEL_SPRITE_FUNCp PanelSpriteFunc;
short ID; // id for finding sprite types on the list
short picndx; // for pip stuff in conpic.h
short picnum; // bypass pip stuff in conpic.h
int Sprite; // for pip stuff in conpic.h
FTextureID texnum; // bypass pip stuff in conpic.h
short vel, vel_adj;
int flags, priority;
int scale;

View file

@ -241,8 +241,8 @@ void DPanelSprite::Serialize(FSerializer& arc)
("pos", pos)
.Array("over", over, countof(over))
("id", ID)
("picndx", picndx)
("picnum", picnum)
.Sprite("sprite", Sprite, nullptr)
("picnum", texnum)
("vel", vel)
("vel_adj", vel_adj)
("orig", bobpos)

View file

@ -319,3 +319,142 @@ x(ZILLA_SHOOT)
x(ZILLA_RECHARGE)
x(ZILLA_DIE)
x(ZILLA_DEAD)
// panel sprites
x(SWORD_REST)
x(SWORD_SWING0)
x(SWORD_SWING1)
x(SWORD_SWING2)
x(BLOODYSWORD_REST)
x(BLOODYSWORD_SWING0)
x(BLOODYSWORD_SWING1)
x(BLOODYSWORD_SWING2)
x(PanelEnvironSuit)
x(UZI_REST)
x(UZI_FIRE_0)
x(UZI_FIRE_1)
x(UZI_EJECT)
x(UZI_CLIP)
x(UZI_RELOAD)
x(CON_UZI_SHELL0)
x(CON_UZI_SHELL1)
x(CON_UZI_SHELL2)
x(CON_UZI_SHELL3)
x(CON_UZI_SHELL4)
x(CON_UZI_SHELL5)
x(SHOTGUN_REST)
x(SHOTGUN_FIRE0)
x(SHOTGUN_FIRE1)
x(SHOTGUN_RELOAD0)
x(SHOTGUN_RELOAD1)
x(SHOTGUN_RELOAD2)
x(SHOTGUN_SHELL0)
x(SHOTGUN_SHELL1)
x(SHOTGUN_SHELL2)
x(SHOTGUN_SHELL3)
x(SHOTGUN_SHELL4)
x(SHOTGUN_SHELL5)
x(SHOTGUN_SHELL6)
x(SHOTGUN_SHELL7)
x(STAR_REST)
x(STAR_DOWN0)
x(STAR_DOWN1)
x(STAR_THROW0)
x(STAR_THROW1)
x(STAR_THROW2)
x(STAR_THROW3)
x(STAR_THROW4)
x(DART_REST )
x(DART_DOWN0 )
x(DART_DOWN1 )
x(DART_THROW0)
x(DART_THROW1)
x(DART_THROW2)
x(DART_THROW3)
x(DART_THROW4)
x(SHOTGUN_AUTO)
x(RAIL_REST0)
x(RAIL_REST1)
x(RAIL_REST2)
x(RAIL_REST3)
x(RAIL_REST4)
x(RAIL_CHARGE0)
x(RAIL_CHARGE1)
x(RAIL_CHARGE2)
x(RAIL_FIRE0)
x(RAIL_FIRE1)
x(HOTHEAD_REST)
x(HOTHEAD_ATTACK)
x(HOTHEAD_CENTER)
x(HOTHEAD_TURN0)
x(HOTHEAD_TURN1)
x(HOTHEAD_TURN2)
x(HOTHEAD_TURN3)
x(HOTHEAD_CHOMP)
x(ON_FIRE0)
x(ON_FIRE1)
x(ON_FIRE2)
x(ON_FIRE3)
x(ON_FIRE4)
x(ON_FIRE5)
x(ON_FIRE6)
x(ON_FIRE7)
x(ON_FIRE8)
x(ON_FIRE9)
x(ON_FIRE10)
x(ON_FIRE11)
x(ON_FIRE12)
x(MICRO_REST )
x(MICRO_FIRE0)
x(MICRO_FIRE1)
x(MICRO_FIRE2)
x(MICRO_FIRE3)
x(MICRO_HEAT)
x(MICRO_SHOT_20)
x(HEART_REST0)
x(HEART_REST1)
x(HEART_ATTACK0)
x(HEART_ATTACK1)
x(GRENADE_REST)
x(GRENADE_FIRE0)
x(GRENADE_FIRE1)
x(GRENADE_FIRE2)
x(GRENADE_RELOAD0)
x(GRENADE_RELOAD1)
x(MINE_REST0)
x(MINE_REST1)
x(MINE_THROW)
x(ChopsRest)
x(ChopsOpen)
x(ChopsClose)
x(FIST_REST)
x(FIST_SWING0)
x(FIST_SWING1)
x(FIST_SWING2)
x(BLOODYFIST_REST)
x(BLOODYFIST_SWING0)
x(BLOODYFIST_SWING1)
x(BLOODYFIST_SWING2)
x(FIST2_REST)
x(FIST2_SWING0)
x(FIST2_SWING1)
x(FIST2_SWING2)
x(FIST2_SWING_ALT)
x(FIST3_REST)
x(FIST3_SWING0)
x(FIST3_SWING1)
x(FIST3_SWING2)
x(BLOODYFIST3_REST)
x(BLOODYFIST3_SWING0)
x(BLOODYFIST3_SWING1)
x(BLOODYFIST3_SWING2)
x(KICK0)
x(KICK1)
x(BLOODYKICK0)
x(BLOODYKICK1)
x(HEART_BLOOD0)
x(HEART_BLOOD1)
x(HEART_BLOOD2)
x(HEART_BLOOD3)
x(HEART_BLOOD4)
x(HEART_BLOOD5)

View file

@ -4,6 +4,8 @@ constants
{
// texture flags
TFLAG_BUNNYFRIENDLY = 1
TFLAG_PANELUSERPAL = 2
TFLAG_FISTFLIP = 4
// surface types
TSURF_WATER = 1

View file

@ -14,6 +14,30 @@ textureflags
SAND,
FLOWERLAWN,
THINGRASS
TFLAG_PANELUSERPAL =
KICK0,
KICK1,
MINE_REST0,
MINE_REST1
TFLAG_FISTFLIP =
FIST_SWING0,
FIST_SWING1,
FIST_SWING2,
FIST2_SWING0,
FIST2_SWING1,
FIST2_SWING2,
FIST3_SWING0,
FIST3_SWING1,
FIST3_SWING2,
BLOODYFIST_SWING0,
BLOODYFIST_SWING1,
BLOODYFIST_SWING2,
BLOODYFIST3_SWING0,
BLOODYFIST3_SWING1,
BLOODYFIST3_SWING2
}
surfacetypes
@ -57,4 +81,40 @@ surfacetypes
TSURF_SHALLOWWATER =
SHALLOWWATER, AWATER, FLSLUDGE, SLUDGE
}
}
texturereplace darts
{
STAR_REST = DART_REST
STAR_DOWN0 = DART_DOWN0
STAR_DOWN1 = DART_DOWN1
STAR_THROW0 = DART_THROW0
STAR_THROW1 = DART_THROW1
STAR_THROW2 = DART_THROW2
STAR_THROW3 = DART_THROW3
STAR_THROW4 = DART_THROW4
}
texturereplace bloody
{
SWORD_REST = BLOODYSWORD_REST
SWORD_SWING0 = BLOODYSWORD_SWING0
SWORD_SWING1 = BLOODYSWORD_SWING1
SWORD_SWING2 = BLOODYSWORD_SWING2
FIST_REST = BLOODYFIST_REST
FIST2_REST = FIST2_SWING0
FIST_SWING0 = BLOODYFIST_SWING0
FIST_SWING1 = BLOODYFIST_SWING1
FIST_SWING2 = BLOODYFIST_SWING2
STAR_REST = STAR_THROW4
DART_REST = DART_THROW4
}
texturereplace shotgun2
{
SHOTGUN_REST = SHOTGUN2_REST
SHOTGUN_RELOAD0 = SHOTGUN2_RELOAD0
SHOTGUN_RELOAD1 = SHOTGUN2_RELOAD1
SHOTGUN_RELOAD2 = SHOTGUN2_RELOAD2
}

View file

@ -359,7 +359,6 @@
4076 = BLOODYFIST_SWING2
4050 = FIST2_REST
4051 = BLOODYFIST2_REST
4058 = FIST2_SWING_ALT
4060 = FIST3_REST

View file

@ -120,6 +120,8 @@ struct SW native
enum ETexFlags // texture flags
{
TFLAG_BUNNYFRIENDLY = 1,
TFLAG_PANELUSERPAL = 2,
TFLAG_FISTFLIP = 4,
};
native static void PlaySound(Sound snd, int flags, int channel = CHAN_AUTO, int cflags = 0);