Files
RustRaptor/raptor/src/objects.h
T
raptorreplica f7c9b7a02d Vendor raptor source files (was embedded gitlink)
Tree vendored at upstream 0019c5dd; origin + license recorded in
raptor/VENDOR.txt. Windows SDL dev packages excluded via .gitignore.
2026-08-25 22:08:42 +10:00

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);