Do "typedef projectile_t defaultprojectile_t;" instead of having an indetical-member type.

Move projectile_t to player.h.

git-svn-id: https://svn.eduke32.com/eduke32@5159 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2015-04-18 21:59:21 +00:00
parent d9c171d499
commit 5683beec3d
6 changed files with 37 additions and 38 deletions

View file

@ -111,22 +111,6 @@ typedef struct { int32_t id; struct action ac; } con_action_t;
#pragma pack(pop) #pragma pack(pop)
#endif #endif
typedef struct {
int32_t workslike, cstat; // 8b
int32_t hitradius, range, flashcolor; // 12b
int16_t spawns, sound, isound, vel; // 8b
int16_t decal, trail, tnum, drop; // 8b
int16_t offset, bounces, bsound; // 6b
int16_t toffset; // 2b
int16_t extra, extra_rand; // 4b
int8_t sxrepeat, syrepeat, txrepeat, tyrepeat; // 4b
int8_t shade, xrepeat, yrepeat, pal; // 4b
int8_t movecnt; // 1b
uint8_t clipdist; // 1b
int8_t filler[2]; // 2b
int32_t userdata; // 4b
} projectile_t;
// Select an actor's actiontics and movflags locations depending on // Select an actor's actiontics and movflags locations depending on
// whether we compile the Lunatic build. // whether we compile the Lunatic build.
// <spr>: sprite pointer // <spr>: sprite pointer

View file

@ -6454,9 +6454,21 @@ void C_InitProjectiles(void)
{ {
defaultprojectile_t const Projectile = defaultprojectile_t const Projectile =
{ {
1, -1, 2048, 0, 0, (int16_t) SMALLSMOKE, -1, -1, 600, (int16_t) BULLETHOLE, -1, 0, 0, 448, // workslike, cstat, hitradius, range, flashcolor;
(int16_t) g_numFreezeBounces, (int16_t) PIPEBOMB_BOUNCE, 1, 100, -1, -1, -1, -1, -1, -96, 18, 18, // spawns, sound, isound, vel, decal, trail, tnum, drop;
0, 1, 32, { 0, 0 }, 0, // offset, bounces, bsound, toffset, extra, extra_rand;
// sxrepeat, syrepeat, txrepeat, tyrepeat;
// shade, xrepeat, yrepeat, pal;
// movecnt, clipdist, filler[2], userdata;
// XXX: The default projectie seems to mimic a union of hard-coded ones.
1, -1, 2048, 0, 0,
(int16_t)SMALLSMOKE, -1, -1, 600, (int16_t)BULLETHOLE, -1, 0, 0,
448, (int16_t)g_numFreezeBounces, (int16_t)PIPEBOMB_BOUNCE, 1, 100, -1,
-1, -1, -1, -1,
-96, 18, 18, 0,
1, 32, { 0, 0 }, 0,
}; };
DefaultProjectile = Projectile; DefaultProjectile = Projectile;
@ -6464,10 +6476,10 @@ void C_InitProjectiles(void)
for (int i=MAXTILES-1; i>=0; i--) for (int i=MAXTILES-1; i>=0; i--)
{ {
if (g_tile[i].proj) if (g_tile[i].proj)
*g_tile[i].proj = *(projectile_t *)&DefaultProjectile; *g_tile[i].proj = DefaultProjectile;
if (g_tile[i].defproj) if (g_tile[i].defproj)
*g_tile[i].defproj = *(projectile_t *)&DefaultProjectile; *g_tile[i].defproj = DefaultProjectile;
} }
} }

View file

@ -25,6 +25,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "build.h" // hashtable_t #include "build.h" // hashtable_t
#include "common.h" // tokenlist #include "common.h" // tokenlist
#include "player.h" // projectile_t
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -114,22 +115,7 @@ extern const memberlabel_t TileDataLabels[];
extern const memberlabel_t PalDataLabels[]; extern const memberlabel_t PalDataLabels[];
#endif #endif
typedef struct typedef projectile_t defaultprojectile_t;
{
int32_t workslike, cstat; // 8b
int32_t hitradius, range, flashcolor; // 12b
int16_t spawns, sound, isound, vel; // 8b
int16_t decal, trail, tnum, drop; // 8b
int16_t offset, bounces, bsound; // 6b
int16_t toffset; // 2b
int16_t extra, extra_rand; // 4b
int8_t sxrepeat, syrepeat, txrepeat, tyrepeat; // 4b
int8_t shade, xrepeat, yrepeat, pal; // 4b
int8_t movecnt; // 1b
uint8_t clipdist; // 1b
int8_t filler[2]; // 2b
int32_t userdata; // 4b
} defaultprojectile_t;
extern defaultprojectile_t DefaultProjectile; extern defaultprojectile_t DefaultProjectile;
int32_t C_AllocQuote(int32_t qnum); int32_t C_AllocQuote(int32_t qnum);

View file

@ -35,6 +35,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// duke3d global soup :( // duke3d global soup :(
// XXX: we don't #include everything we need.
#include "compat.h" #include "compat.h"
#include "build.h" #include "build.h"

View file

@ -140,7 +140,7 @@ static void A_DoWaterTracers(int32_t x1,int32_t y1,int32_t z1,int32_t x2,int32_t
static inline projectile_t * Proj_GetProjectile(int tile) static inline projectile_t * Proj_GetProjectile(int tile)
{ {
return ((unsigned)tile < MAXTILES && g_tile[tile].proj) ? g_tile[tile].proj : (projectile_t *) &DefaultProjectile; return ((unsigned)tile < MAXTILES && g_tile[tile].proj) ? g_tile[tile].proj : &DefaultProjectile;
} }
static void A_HitscanProjTrail(const vec3_t *sv, const vec3_t *dv, int32_t ang, int32_t atwith) static void A_HitscanProjTrail(const vec3_t *sv, const vec3_t *dv, int32_t ang, int32_t atwith)

View file

@ -318,6 +318,22 @@ extern intptr_t *aplWeaponSelectSound[MAX_WEAPONS]; // Sound for wea
extern intptr_t *aplWeaponFlashColor[MAX_WEAPONS]; // Color for polymer muzzle flash extern intptr_t *aplWeaponFlashColor[MAX_WEAPONS]; // Color for polymer muzzle flash
#endif #endif
typedef struct {
int32_t workslike, cstat; // 8b
int32_t hitradius, range, flashcolor; // 12b
int16_t spawns, sound, isound, vel; // 8b
int16_t decal, trail, tnum, drop; // 8b
int16_t offset, bounces, bsound; // 6b
int16_t toffset; // 2b
int16_t extra, extra_rand; // 4b
int8_t sxrepeat, syrepeat, txrepeat, tyrepeat; // 4b
int8_t shade, xrepeat, yrepeat, pal; // 4b
int8_t movecnt; // 1b
uint8_t clipdist; // 1b
int8_t filler[2]; // 2b
int32_t userdata; // 4b
} projectile_t;
// KEEPINSYNC lunatic/defs.ilua // KEEPINSYNC lunatic/defs.ilua
typedef struct { typedef struct {
int32_t cur, count; // "cur" is the only member that is *used* int32_t cur, count; // "cur" is the only member that is *used*