Tree vendored at upstream 0019c5dd; origin + license recorded in raptor/VENDOR.txt. Windows SDL dev packages excluded via .gitignore.
101 lines
3.5 KiB
C
101 lines
3.5 KiB
C
#pragma once
|
|
|
|
#define MAX_OBJS 20
|
|
|
|
typedef enum
|
|
{
|
|
OBJ_GOTIT,
|
|
OBJ_NOMONEY,
|
|
OBJ_SHIPFULL,
|
|
OBJ_ERROR
|
|
}BUYSTUFF;
|
|
|
|
typedef enum
|
|
{
|
|
S_FORWARD_GUNS, // 00 * DUAL MACHINE GUNS
|
|
S_PLASMA_GUNS, // 01 * PLASMA GUNS
|
|
S_MICRO_MISSLE, // 02 * SMALL WING MISSLES
|
|
S_DUMB_MISSLE, // 03 DUMB FIRE MISSLE // 1
|
|
S_MINI_GUN, // 04 AUTO TRACK MINI GUN // 2
|
|
S_TURRET, // 05 AUTO TRACK LASER TURRET // 3
|
|
S_MISSLE_PODS, // 06 MULTIPLE MISSLE SHOTS // 4
|
|
S_AIR_MISSLE, // 07 AIR TO AIR MISSLE // 5
|
|
S_GRD_MISSLE, // 08 AIR TO GROUND // 6
|
|
S_BOMB, // 09 GROUND BOMB // 7
|
|
S_ENERGY_GRAB, // 10 ENERGY GRAB // 8
|
|
S_MEGA_BOMB, // 11 MEGA BOMB KILLS ALL AIR //
|
|
S_PULSE_CANNON, // 12 WAVE WEAPON // 9
|
|
S_FORWARD_LASER, // 13 ALTERNATING LASER // MINUS
|
|
S_DEATH_RAY, // 14 DEATH RAY // 0
|
|
S_SUPER_SHIELD, // 15 SUPER SHIELD //
|
|
S_ENERGY, // 16 NORMAL SHIELD ENERGY //
|
|
S_DETECT, // 18 DAMAGE DETECTOR //
|
|
S_ITEMBUY1, // 19
|
|
S_ITEMBUY2, // 20
|
|
S_ITEMBUY3, // 21
|
|
S_ITEMBUY4, // 22
|
|
S_ITEMBUY5, // 23
|
|
S_ITEMBUY6, // 24
|
|
S_LAST_OBJECT // 25 LAST OBJECT ( NOT USED )
|
|
}OBJ_TYPE;
|
|
|
|
#define LAST_WEAPON ( S_DEATH_RAY )
|
|
#define FIRST_SPECIAL ( S_DUMB_MISSLE )
|
|
|
|
typedef struct
|
|
{
|
|
int item; // LUMPNUM OF PIC
|
|
int numframes; // NUMBER OF FRAMES
|
|
int cost; // COST OF OBJECT
|
|
int start_cnt; // START AMOUNT OF ITEMS
|
|
int max_cnt; // MAX COUNT OF UNITS/ITEMS
|
|
int (*actf)(int); // FUNCTION PTR FOR ACTION
|
|
int fxtype; // SOUND FX TYPE
|
|
int forever; // LAST FOREVER
|
|
int onlyflag; // UNIQUE FLAG ( ENERGY )
|
|
int loseit; // LOSE OBJECT
|
|
int specialw; // SPECIAL WEAPON
|
|
int moneyflag; // ADDS MONEY TO PLAYER WHEN PICKED UP
|
|
int game1flag; // TRUE=AVALABLE IN ALL GAMES
|
|
int shieldflag; // SHOW SHIELD WHEN BONUS
|
|
}OBJ_LIB;
|
|
|
|
typedef struct OBJ_S
|
|
{
|
|
struct OBJ_S *prev; // LINK LIST PREV
|
|
struct OBJ_S *next; // LINK LIST NEXT
|
|
int num; // NUMBER OF ITEM(S)
|
|
int type; // OBJECT TYPE
|
|
OBJ_LIB *lib; // POINTER TO LIB
|
|
int inuse; // CURRENTLY EQUIPED
|
|
}OBJ;
|
|
|
|
extern OBJ first_objs, last_objs;
|
|
|
|
void OBJS_Init(void);
|
|
int OBJS_Add(int type);
|
|
void OBJS_GetNext(void);
|
|
int OBJS_GetAmt(int type);
|
|
OBJ_LIB *OBJS_GetLib(int type);
|
|
int OBJS_CanBuy(int type);
|
|
int OBJS_GetCost(int type);
|
|
int OBJS_CanSell(int type);
|
|
int OBJS_GetNum(void);
|
|
int OBJS_IsOnly(int type);
|
|
int OBJS_GetTotal(int type);
|
|
int OBJS_GetResale(int type);
|
|
int OBJS_Buy(unsigned int type);
|
|
int OBJS_Sell(int type);
|
|
void OBJS_Clear(void);
|
|
int OBJS_Load(OBJ *inobj);
|
|
int OBJS_IsEquip(int type);
|
|
int OBJS_LoseObj(void);
|
|
void OBJS_DisplayStats(void);
|
|
int OBJS_MakeSpecial(int type);
|
|
void OBJS_Use(int type);
|
|
void OBJS_Think(void);
|
|
int OBJS_SubEnergy(int amt);
|
|
int OBJS_AddEnergy(int amt);
|
|
void OBJS_CachePics(void);
|
|
void OBJS_FreePics(void);
|