mirror of
https://github.com/w23/xash3d-fwgs
synced 2024-12-15 13:41:33 +01:00
5e0a0765ce
The `.editorconfig` file in this repo is configured to trim all trailing whitespace regardless of whether the line is modified. Trims all trailing whitespace in the repository to make the codebase easier to work with in editors that respect `.editorconfig`. `git blame` becomes less useful on these lines but it already isn't very useful. Commands: ``` find . -type f -name '*.h' -exec sed --in-place 's/[[:space:]]\+$//' {} \+ find . -type f -name '*.c' -exec sed --in-place 's/[[:space:]]\+$//' {} \+ ```
129 lines
2.7 KiB
C
129 lines
2.7 KiB
C
/***
|
|
*
|
|
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
|
|
*
|
|
* This product contains software technology licensed from Id
|
|
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* Use, distribution, and modification of this source code and/or resulting
|
|
* object code is restricted to non-commercial enhancements to products from
|
|
* Valve LLC. All other use, distribution, or modification is prohibited
|
|
* without written permission from Valve LLC.
|
|
*
|
|
****/
|
|
|
|
#ifndef SPRITE_H
|
|
#define SPRITE_H
|
|
|
|
/*
|
|
==============================================================================
|
|
|
|
SPRITE MODELS
|
|
|
|
.spr extended version (Half-Life compatible sprites with some Xash3D extensions)
|
|
==============================================================================
|
|
*/
|
|
|
|
#define IDSPRITEHEADER (('P'<<24)+('S'<<16)+('D'<<8)+'I') // little-endian "IDSP"
|
|
|
|
#define SPRITE_VERSION_Q1 1 // Quake sprites
|
|
#define SPRITE_VERSION_HL 2 // Half-Life sprites
|
|
#define SPRITE_VERSION_32 32 // Captain Obvious mode on
|
|
|
|
// must match definition in alias.h
|
|
#ifndef SYNCTYPE_T
|
|
#define SYNCTYPE_T
|
|
typedef enum
|
|
{
|
|
ST_SYNC = 0,
|
|
ST_RAND
|
|
} synctype_t;
|
|
#endif
|
|
|
|
typedef enum
|
|
{
|
|
FRAME_SINGLE = 0,
|
|
FRAME_GROUP,
|
|
FRAME_ANGLED // Xash3D ext
|
|
} frametype_t;
|
|
|
|
typedef enum
|
|
{
|
|
SPR_NORMAL = 0,
|
|
SPR_ADDITIVE,
|
|
SPR_INDEXALPHA,
|
|
SPR_ALPHTEST,
|
|
} drawtype_t;
|
|
|
|
typedef enum
|
|
{
|
|
SPR_FWD_PARALLEL_UPRIGHT = 0,
|
|
SPR_FACING_UPRIGHT,
|
|
SPR_FWD_PARALLEL,
|
|
SPR_ORIENTED,
|
|
SPR_FWD_PARALLEL_ORIENTED,
|
|
} angletype_t;
|
|
|
|
typedef enum
|
|
{
|
|
SPR_CULL_FRONT = 0, // oriented sprite will be draw with one face
|
|
SPR_CULL_NONE, // oriented sprite will be draw back face too
|
|
} facetype_t;
|
|
|
|
// generic helper
|
|
typedef struct
|
|
{
|
|
int ident; // LittleLong 'ISPR'
|
|
int version; // current version 2
|
|
} dsprite_t;
|
|
|
|
typedef struct
|
|
{
|
|
int ident; // LittleLong 'ISPR'
|
|
int version; // current version 2
|
|
int type; // camera align
|
|
float boundingradius; // quick face culling
|
|
int bounds[2]; // mins\maxs
|
|
int numframes; // including groups
|
|
float beamlength; // ???
|
|
synctype_t synctype; // animation synctype
|
|
} dsprite_q1_t;
|
|
|
|
typedef struct
|
|
{
|
|
int ident; // LittleLong 'ISPR'
|
|
int version; // current version 2
|
|
angletype_t type; // camera align
|
|
drawtype_t texFormat; // rendering mode
|
|
int boundingradius; // quick face culling
|
|
int bounds[2]; // mins\maxs
|
|
int numframes; // including groups
|
|
facetype_t facetype; // cullface (Xash3D ext)
|
|
synctype_t synctype; // animation synctype
|
|
} dsprite_hl_t;
|
|
|
|
typedef struct
|
|
{
|
|
int origin[2];
|
|
int width;
|
|
int height;
|
|
} dspriteframe_t;
|
|
|
|
typedef struct
|
|
{
|
|
int numframes;
|
|
} dspritegroup_t;
|
|
|
|
typedef struct
|
|
{
|
|
float interval;
|
|
} dspriteinterval_t;
|
|
|
|
typedef struct
|
|
{
|
|
frametype_t type;
|
|
} dframetype_t;
|
|
|
|
#endif//SPRITE_H
|