770 lines
No EOL
30 KiB
C
770 lines
No EOL
30 KiB
C
#include "g_local.h"
|
|
|
|
typedef struct
|
|
{
|
|
char *name;
|
|
void (*spawn)(edict_t *ent);
|
|
int CID;
|
|
} spawn_t;
|
|
|
|
void SP_info_player_start (edict_t *ent);
|
|
void SP_info_player_deathmatch (edict_t *ent);
|
|
void SP_info_player_coop (edict_t *ent);
|
|
void SP_info_player_intermission (edict_t *ent);
|
|
void SP_info_buoy (edict_t *ent);
|
|
|
|
void SP_func_plat (edict_t *ent);
|
|
void SP_func_rotating (edict_t *ent);
|
|
void SP_func_button (edict_t *ent);
|
|
void SP_func_door (edict_t *ent);
|
|
void SP_func_door_secret (edict_t *ent);
|
|
void SP_func_door_rotating (edict_t *ent);
|
|
void SP_func_water (edict_t *ent);
|
|
void SP_func_train (edict_t *ent);
|
|
void SP_func_wall (edict_t *self);
|
|
void SP_func_object (edict_t *self);
|
|
void SP_func_timer (edict_t *self);
|
|
void SP_func_areaportal (edict_t *ent);
|
|
void SP_func_monsterspawner (edict_t *ent);
|
|
|
|
void SP_trigger_Activate(edict_t *self);
|
|
void SP_trigger_Always (edict_t *ent);
|
|
void SP_trigger_Counter (edict_t *ent);
|
|
void SP_trigger_Damage(edict_t *self);
|
|
void SP_trigger_Deactivate(edict_t *self);
|
|
void SP_trigger_Elevator (edict_t *ent);
|
|
//void SP_trigger_flamethrower (edict_t *ent);
|
|
void SP_trigger_fogdensity(edict_t *self);
|
|
void SP_trigger_Gravity(edict_t *self);
|
|
void SP_trigger_mappercentage(edict_t *self);
|
|
void SP_trigger_quit_to_menu(edict_t *self);
|
|
void SP_trigger_mission_give(edict_t *self);
|
|
void SP_trigger_mission_take(edict_t *self);
|
|
void SP_trigger_MonsterJump(edict_t *self);
|
|
void SP_trigger_goto_buoy(edict_t *self);
|
|
void SP_trigger_Multiple (edict_t *ent);
|
|
void SP_trigger_Once (edict_t *ent);
|
|
void SP_trigger_PlayerPushButton (edict_t *ent);
|
|
void SP_trigger_PlayerPushLever (edict_t *ent);
|
|
void SP_trigger_PlayerUsePuzzle (edict_t *ent);
|
|
void SP_trigger_push(edict_t *self);
|
|
void SP_trigger_puzzle (edict_t *ent);
|
|
void SP_trigger_quake (edict_t *ent);
|
|
void SP_trigger_Relay (edict_t *ent);
|
|
void SP_trigger_lightning (edict_t *ent);
|
|
void SP_trigger_farclip (edict_t *ent);
|
|
void SP_trigger_endgame(edict_t *self);
|
|
|
|
|
|
void SP_choose_CDTrack(edict_t *self);
|
|
|
|
void SP_target_explosion (edict_t *ent);
|
|
void SP_target_changelevel (edict_t *ent);
|
|
void SP_target_crosslevel_trigger (edict_t *ent);
|
|
void SP_target_crosslevel_target (edict_t *ent);
|
|
void SP_target_lightramp (edict_t *self);
|
|
void SP_target_earthquake (edict_t *ent);
|
|
|
|
void SP_worldspawn (edict_t *ent);
|
|
|
|
void SP_light (edict_t *self);
|
|
void SP_info_null (edict_t *self);
|
|
void SP_info_notnull (edict_t *self);
|
|
void SP_path_corner (edict_t *self);
|
|
void SP_point_combat (edict_t *self);
|
|
|
|
void SP_misc_teleporter (edict_t *self);
|
|
void SP_misc_teleporter_dest (edict_t *self);
|
|
void misc_update_spawner (edict_t *self);
|
|
void SP_misc_remote_camera (edict_t *self);
|
|
void SP_misc_magic_portal (edict_t *self);
|
|
void SP_misc_fire_sparker (edict_t *ent);
|
|
|
|
void SP_Monster_Gkrokon(edict_t *Self);
|
|
void SP_misc_flag (edict_t *ent);
|
|
void SP_monster_gorgon (edict_t *self);
|
|
void SP_monster_gorgon_leader (edict_t *self);
|
|
void SP_monster_rat (edict_t *self);
|
|
void SP_monster_rat_giant (edict_t *self);
|
|
void SP_monster_chicken (edict_t *self);
|
|
void SP_monster_plagueElf(edict_t *self);
|
|
void SP_monster_palace_plague_guard(edict_t *self);
|
|
void SP_monster_palace_plague_guard_invisible(edict_t *self);
|
|
void SP_monster_fish (edict_t *self);
|
|
void SP_monster_harpy (edict_t *self);
|
|
void SP_monster_spreader (edict_t *self);
|
|
void SP_monster_elflord (edict_t *self);
|
|
void SP_monster_plague_ssithra (edict_t *self);
|
|
void SP_monster_mssithra (edict_t *self);
|
|
void SP_monster_chkroktk (edict_t *self);
|
|
void SP_monster_tcheckrik_male (edict_t *self);
|
|
void SP_monster_tcheckrik_female (edict_t *self);
|
|
void SP_monster_tcheckrik_mothers (edict_t *self);
|
|
void SP_monster_high_priestess (edict_t *self);
|
|
void SP_monster_ogle (edict_t *self);
|
|
void SP_monster_seraph_overlord (edict_t *self);
|
|
void SP_monster_seraph_guard (edict_t *self);
|
|
void SP_monster_assassin (edict_t *self);
|
|
void SP_monster_morcalavin (edict_t *self);
|
|
void SP_monster_trial_beast (edict_t *self);
|
|
void SP_monster_imp (edict_t *self);
|
|
void SP_monster_bee (edict_t *self);
|
|
|
|
void SP_character_corvus1 (edict_t *self);
|
|
void SP_character_corvus2 (edict_t *self);
|
|
void SP_character_corvus3 (edict_t *self);
|
|
void SP_character_corvus4 (edict_t *self);
|
|
void SP_character_corvus5 (edict_t *self);
|
|
void SP_character_corvus6 (edict_t *self);
|
|
void SP_character_corvus7 (edict_t *self);
|
|
void SP_character_corvus8 (edict_t *self);
|
|
void SP_character_corvus9 (edict_t *self);
|
|
void SP_character_dranor (edict_t *self);
|
|
void SP_character_elflord (edict_t *self);
|
|
void SP_character_highpriestess (edict_t *self);
|
|
void SP_character_highpriestess2 (edict_t *self);
|
|
void SP_character_morcalavin (edict_t *self);
|
|
void SP_character_sidhe_guard (edict_t *self);
|
|
void SP_character_siernan1 (edict_t *self);
|
|
void SP_character_siernan2 (edict_t *self);
|
|
void SP_character_ssithra_scout (edict_t *self);
|
|
void SP_character_ssithra_victim (edict_t *self);
|
|
void SP_character_tome (edict_t *self);
|
|
|
|
void SP_breakable_brush (edict_t *ent);
|
|
|
|
void SP_light_walltorch (edict_t *ent);
|
|
//void SP_light_flame (edict_t *ent);
|
|
void SP_light_floortorch (edict_t *ent);
|
|
void SP_light_torch1(edict_t *ent);
|
|
void SP_light_gem2(edict_t *ent);
|
|
void SP_light_chandelier1 (edict_t *ent);
|
|
void SP_light_chandelier2 (edict_t *ent);
|
|
void SP_light_chandelier3 (edict_t *ent);
|
|
void SP_light_lantern1 (edict_t *ent);
|
|
void SP_light_lantern2 (edict_t *ent);
|
|
void SP_light_lantern3 (edict_t *ent);
|
|
void SP_light_lantern4 (edict_t *ent);
|
|
void SP_light_lantern5 (edict_t *ent);
|
|
void SP_light_buglight (edict_t *ent);
|
|
|
|
void SP_env_fire (edict_t *self);
|
|
void SP_env_dust (edict_t *self);
|
|
void SP_env_smoke (edict_t *self);
|
|
void SP_env_mist(edict_t *self);
|
|
void SP_env_bubbler(edict_t *self);
|
|
void SP_env_water_drip(edict_t *self);
|
|
void SP_env_water_fountain(edict_t *self);
|
|
void SP_env_waterfall_base(edict_t *self);
|
|
void SP_env_sun1(edict_t *ent);
|
|
void SP_env_muck(edict_t *ent);
|
|
//void SP_env_galaxy (edict_t *ent);
|
|
|
|
void SP_sound_ambient_silverspring (edict_t *ent);
|
|
void SP_sound_ambient_swampcanyon (edict_t *ent);
|
|
void SP_sound_ambient_andoria (edict_t *ent);
|
|
void SP_sound_ambient_hive (edict_t *ent);
|
|
void SP_sound_ambient_mine (edict_t *ent);
|
|
void SP_sound_ambient_cloudfortress (edict_t *ent);
|
|
|
|
// Object stuff
|
|
void SP_obj_andwallhanging(edict_t *ent);
|
|
|
|
void SP_obj_banner(edict_t *ent);
|
|
void SP_obj_banneronpole(edict_t *ent);
|
|
void SP_obj_barrel(edict_t *ent);
|
|
void SP_obj_barrel_explosive(edict_t *ent);
|
|
void SP_obj_barrel_metal(edict_t *ent);
|
|
void SP_obj_basket(edict_t *ent);
|
|
void SP_obj_bench(edict_t *ent);
|
|
void SP_obj_bigcrystal(edict_t *self);
|
|
void SP_obj_biotank (edict_t *self);
|
|
void SP_obj_bloodsplat(edict_t *ent);
|
|
void SP_obj_bookclosed(edict_t *ent);
|
|
void SP_obj_bookopen(edict_t *ent);
|
|
void SP_obj_bottle1(edict_t *ent);
|
|
void SP_obj_broom (edict_t *ent);
|
|
void SP_obj_bucket (edict_t *ent);
|
|
void SP_obj_bush1 (edict_t *ent);
|
|
void SP_obj_bush2 (edict_t *ent);
|
|
|
|
void SP_obj_cactus (edict_t *ent);
|
|
void SP_obj_cactus3 (edict_t *ent);
|
|
void SP_obj_cactus4 (edict_t *ent);
|
|
void SP_obj_cauldron(edict_t *ent);
|
|
void SP_obj_chair1(edict_t *ent);
|
|
void SP_obj_chair2(edict_t *ent);
|
|
void SP_obj_chair3(edict_t *ent);
|
|
void SP_obj_chest1(edict_t *ent);
|
|
void SP_obj_chest2(edict_t *ent);
|
|
void SP_obj_chest3(edict_t *ent);
|
|
void SP_obj_choppeddude(edict_t *ent);
|
|
void SP_obj_claybowl (edict_t *ent);
|
|
void SP_obj_clayjar (edict_t *ent);
|
|
void SP_obj_cocoon(edict_t *ent);
|
|
void SP_obj_cocoonopen(edict_t *ent);
|
|
void SP_obj_cog1(edict_t *ent);
|
|
void SP_obj_corpse1(edict_t *self);
|
|
void SP_obj_corpse2(edict_t *self);
|
|
void SP_obj_corpse_ogle(edict_t *self);
|
|
void SP_obj_corpse_ssithra(edict_t *self);
|
|
|
|
void SP_obj_dying_elf(edict_t *self);
|
|
|
|
void SP_obj_eggpan(edict_t *ent);
|
|
void SP_obj_eyeball_jar(edict_t *ent);
|
|
|
|
void SP_obj_firepot(edict_t *ent);
|
|
void SP_obj_fishhead1(edict_t *ent);
|
|
void SP_obj_fishhead2(edict_t *ent);
|
|
void SP_obj_fishtrap (edict_t *ent);
|
|
void SP_obj_flagonpole (edict_t *ent);
|
|
void SP_obj_floor_candelabrum(edict_t *ent);
|
|
void SP_obj_fountain_fish(edict_t *ent);
|
|
void SP_obj_frypan(edict_t *ent);
|
|
|
|
void SP_obj_gascan(edict_t *ent);
|
|
void SP_obj_gorgonbones(edict_t *ent);
|
|
void SP_obj_grass(edict_t *ent);
|
|
|
|
void SP_obj_hangingdude(edict_t *ent);
|
|
void SP_obj_hanging_ogle(edict_t *ent);
|
|
void SP_obj_hivepriestessssymbol (edict_t *self);
|
|
|
|
void SP_obj_jawbone(edict_t *ent);
|
|
void SP_obj_jug1(edict_t *ent);
|
|
|
|
void SP_obj_kettle(edict_t *ent);
|
|
|
|
void SP_obj_lab_parts_container(edict_t *ent);
|
|
void SP_obj_lab_tray(edict_t *ent);
|
|
void SP_obj_larva(edict_t *ent);
|
|
void SP_obj_larvabrokenegg(edict_t *ent);
|
|
void SP_obj_larvaegg(edict_t *ent);
|
|
void SP_obj_lever1 (edict_t *ent);
|
|
void SP_obj_lever2 (edict_t *ent);
|
|
void SP_obj_lever3 (edict_t *ent);
|
|
|
|
void SP_obj_metalchunk1(edict_t *ent);
|
|
void SP_obj_metalchunk2(edict_t *ent);
|
|
void SP_obj_metalchunk3(edict_t *ent);
|
|
void SP_obj_minecart(edict_t *ent);
|
|
void SP_obj_minecart2(edict_t *ent);
|
|
void SP_obj_minecart3(edict_t *ent);
|
|
void SP_obj_moss1(edict_t *self);
|
|
void SP_obj_moss2(edict_t *self);
|
|
void SP_obj_moss3(edict_t *self);
|
|
void SP_obj_moss4(edict_t *self);
|
|
void SP_obj_moss5(edict_t *self);
|
|
|
|
void SP_obj_nest(edict_t *self);
|
|
|
|
void SP_obj_pick(edict_t *ent);
|
|
void SP_obj_pipe1(edict_t *ent);
|
|
void SP_obj_pipe2(edict_t *ent);
|
|
void SP_obj_pipewheel(edict_t *ent);
|
|
void SP_obj_plant1(edict_t *ent);
|
|
void SP_obj_plant2(edict_t *ent);
|
|
void SP_obj_plant3(edict_t *ent);
|
|
void SP_obj_pot1(edict_t *ent);
|
|
void SP_obj_pot2(edict_t *ent);
|
|
void SP_obj_pottedplant(edict_t *ent);
|
|
void SP_obj_pushcart(edict_t *ent);
|
|
|
|
void SP_obj_queenchair(edict_t *ent);
|
|
void SP_obj_queenthrone(edict_t *ent);
|
|
|
|
void SP_obj_ring_plaque2 (edict_t *ent);
|
|
void SP_obj_rocks1(edict_t *ent);
|
|
void SP_obj_rocks2(edict_t *ent);
|
|
void SP_obj_rope(edict_t *ent);
|
|
void SP_obj_ropechain (edict_t *ent);
|
|
|
|
void SP_obj_scroll(edict_t *ent);
|
|
void SP_obj_seasonglobe(edict_t *ent);
|
|
void SP_obj_shovel(edict_t *ent);
|
|
void SP_obj_shrine(edict_t *ent);
|
|
void SP_obj_sign1(edict_t *ent);
|
|
void SP_obj_sign4(edict_t *ent);
|
|
void SP_obj_skullpole(edict_t *ent);
|
|
void SP_obj_spellbook(edict_t *ent);
|
|
void SP_obj_stalactite1(edict_t *ent);
|
|
void SP_obj_stalactite2(edict_t *ent);
|
|
void SP_obj_stalactite3(edict_t *ent);
|
|
void SP_obj_stalagmite1(edict_t *ent);
|
|
void SP_obj_stalagmite2(edict_t *ent);
|
|
void SP_obj_stalagmite3(edict_t *ent);
|
|
void SP_obj_statue_corvus (edict_t *ent);
|
|
void SP_obj_statue_boulderfish (edict_t *ent);
|
|
void SP_obj_statue_dolphin1(edict_t *ent);
|
|
void SP_obj_statue_dolphin2(edict_t *ent);
|
|
void SP_obj_statue_dolphin3(edict_t *ent);
|
|
void SP_obj_statue_dolphin4(edict_t *ent);
|
|
void SP_obj_statue_dragon (edict_t *ent);
|
|
void SP_obj_statue_dragonhead (edict_t *ent);
|
|
void SP_obj_statue_duckbill1(edict_t *ent);
|
|
void SP_obj_statue_duckbill2(edict_t *ent);
|
|
void SP_obj_statue_guardian(edict_t *ent);
|
|
void SP_obj_statue_saraphbust(edict_t *ent);
|
|
void SP_obj_statue_sariph(edict_t *ent);
|
|
void SP_obj_statue_sithraguard(edict_t *ent);
|
|
void SP_obj_statue_tchecktrik_bust (edict_t *self);
|
|
void SP_obj_statue_techeckrikleft (edict_t *self);
|
|
void SP_obj_statue_techeckrikright (edict_t *self);
|
|
void SP_obj_statue_techeckriktomb (edict_t *self);
|
|
void SP_obj_stein(edict_t *ent);
|
|
void SP_obj_swampflat_top(edict_t *ent);
|
|
void SP_obj_swampflat_bottom(edict_t *ent);
|
|
|
|
void SP_obj_table1(edict_t *ent);
|
|
void SP_obj_table2(edict_t *ent);
|
|
void SP_obj_tapper(edict_t *ent);
|
|
void SP_obj_throne (edict_t *ent);
|
|
void SP_obj_torture_bed (edict_t *ent);
|
|
void SP_obj_torture_ironmaiden (edict_t *ent);
|
|
void SP_obj_torture_rack (edict_t *ent);
|
|
void SP_obj_torture_table (edict_t *ent);
|
|
void SP_obj_torture_wallring (edict_t *ent);
|
|
void SP_obj_tree(edict_t *ent);
|
|
void SP_obj_tree2(edict_t *ent);
|
|
void SP_obj_tree3(edict_t *ent);
|
|
void SP_obj_treefallen(edict_t *ent);
|
|
void SP_obj_treestump(edict_t *ent);
|
|
void SP_obj_treetall(edict_t *ent);
|
|
void SP_obj_treetop(edict_t *ent);
|
|
|
|
void SP_obj_urn (edict_t *ent);
|
|
|
|
void SP_obj_venusflytrap(edict_t *ent);
|
|
|
|
void SP_obj_wallringplaque(edict_t *ent);
|
|
void SP_obj_web(edict_t *ent);
|
|
void SP_obj_wheelbarrow(edict_t *ent);
|
|
void SP_obj_wheelbarrowdamaged(edict_t *ent);
|
|
void SP_obj_woodpile(edict_t *ent);
|
|
|
|
void SP_obj_morcalavin_barrier(edict_t *ent);
|
|
|
|
void SP_flamethrower(edict_t *ent);
|
|
|
|
void SP_item_spitter(edict_t *ent);
|
|
|
|
// shrine stuff
|
|
|
|
void shrine_heal (edict_t *ent);
|
|
void shrine_armor (edict_t *ent);
|
|
void shrine_armor_gold (edict_t *ent);
|
|
void shrine_staff (edict_t *ent);
|
|
void shrine_lung (edict_t *ent);
|
|
void shrine_light (edict_t *ent);
|
|
void shrine_mana (edict_t *ent);
|
|
void shrine_ghost (edict_t *ent);
|
|
void shrine_reflect (edict_t *ent);
|
|
void shrine_powerup (edict_t *ent);
|
|
void shrine_random (edict_t *ent);
|
|
void shrine_speed (edict_t *ent);
|
|
|
|
void SP_script_runner (edict_t *ent);
|
|
|
|
spawn_t spawns[]=
|
|
{
|
|
// Quake2 specific spawns.
|
|
{"info_player_start", SP_info_player_start,-1},
|
|
{"info_player_deathmatch", SP_info_player_deathmatch,-1},
|
|
{"info_player_coop", SP_info_player_coop,-1},
|
|
{"info_player_intermission", SP_info_player_intermission,-1},
|
|
|
|
{"func_plat", SP_func_plat,-1},
|
|
{"func_button", SP_func_button,CID_BUTTON},
|
|
{"func_door", SP_func_door,CID_FUNC_DOOR},
|
|
{"func_door_secret", SP_func_door_secret,-1},
|
|
{"func_door_rotating", SP_func_door_rotating,CID_FUNC_ROTATE},
|
|
{"func_rotating", SP_func_rotating,CID_FUNC_ROTATE},
|
|
{"func_train", SP_func_train,-1},
|
|
{"func_water", SP_func_water,-1},
|
|
{"func_areaportal", SP_func_areaportal,-1},
|
|
{"func_monsterspawner", SP_func_monsterspawner,-1},
|
|
{"func_wall", SP_func_wall,-1},
|
|
{"func_object", SP_func_object,-1},
|
|
{"func_timer", SP_func_timer,-1},
|
|
|
|
{"trigger_Activate", SP_trigger_Activate,CID_TRIGGER},
|
|
{"trigger_always", SP_trigger_Always,CID_TRIGGER},
|
|
{"trigger_Damage", SP_trigger_Damage,CID_TRIG_DAMAGE},
|
|
{"trigger_Deactivate", SP_trigger_Deactivate,CID_TRIGGER},
|
|
{"trigger_counter", SP_trigger_Counter,CID_TRIGGER},
|
|
{"trigger_elevator", SP_trigger_Elevator,CID_TRIGGER},
|
|
// {"trigger_flamethrower", SP_trigger_flamethrower,CID_TRIGGER},
|
|
{"trigger_fogdensity", SP_trigger_fogdensity,CID_TRIGGER},
|
|
{"trigger_Gravity", SP_trigger_Gravity,-1},
|
|
{"trigger_lightning", SP_trigger_lightning,CID_TRIGGER},
|
|
{"trigger_mappercentage", SP_trigger_mappercentage,CID_TRIGGER},
|
|
{"trigger_quit_to_menu", SP_trigger_quit_to_menu,CID_TRIGGER},
|
|
{"trigger_mission_give", SP_trigger_mission_give,CID_TRIGGER},
|
|
{"trigger_mission_take", SP_trigger_mission_take,CID_TRIGGER},
|
|
{"trigger_MonsterJump", SP_trigger_MonsterJump,-1},
|
|
{"trigger_goto_buoy", SP_trigger_goto_buoy,-1},
|
|
{"trigger_multiple", SP_trigger_Multiple,CID_TRIGGER},
|
|
{"trigger_playerpushbutton", SP_trigger_PlayerPushButton,CID_TRIGGER},
|
|
{"trigger_playerpushlever", SP_trigger_PlayerPushLever,CID_TRIGGER},
|
|
{"trigger_playerusepuzzle", SP_trigger_PlayerUsePuzzle,CID_TRIGGER},
|
|
{"trigger_push", SP_trigger_push,CID_TRIG_PUSH},
|
|
{"trigger_puzzle", SP_trigger_puzzle,CID_TRIGGER},
|
|
{"trigger_once", SP_trigger_Once,CID_TRIGGER},
|
|
{"trigger_quake", SP_trigger_quake,CID_TRIGGER},
|
|
{"trigger_relay", SP_trigger_Relay,CID_TRIGGER},
|
|
{"trigger_farclip", SP_trigger_farclip,CID_TRIGGER},
|
|
{"trigger_endgame", SP_trigger_endgame,CID_TRIGGER},
|
|
|
|
{"choose_CDTrack", SP_choose_CDTrack,-1},
|
|
|
|
{"target_explosion", SP_target_explosion,-1},
|
|
{"target_changelevel", SP_target_changelevel,-1},
|
|
{"target_crosslevel_trigger", SP_target_crosslevel_trigger,-1},
|
|
{"target_crosslevel_target", SP_target_crosslevel_target,-1},
|
|
//{"target_actor", SP_target_actor,-1},
|
|
{"target_lightramp", SP_target_lightramp,-1},
|
|
{"target_earthquake", SP_target_earthquake,-1},
|
|
|
|
{"worldspawn", SP_worldspawn,-1},
|
|
|
|
{"light", SP_light,-1},
|
|
{"info_null", SP_info_null,-1},
|
|
{"func_group", SP_info_null,-1},
|
|
{"info_notnull", SP_info_notnull,-1},
|
|
{"path_corner", SP_path_corner,-1},
|
|
{"point_combat", SP_point_combat,-1},
|
|
|
|
//{"misc_actor", SP_misc_actor,-1},
|
|
{"misc_teleporter", SP_misc_teleporter,CID_TELEPORTER},
|
|
{"misc_teleporter_dest", SP_misc_teleporter_dest,-1},
|
|
{"misc_update_spawner", misc_update_spawner, CID_TRIGGER},
|
|
{"misc_remote_camera", SP_misc_remote_camera,-1},
|
|
{"misc_magic_portal", SP_misc_magic_portal, -1},
|
|
{"misc_fire_sparker", SP_misc_fire_sparker, -1},
|
|
|
|
{"misc_flag", SP_misc_flag,-1},
|
|
|
|
{"monster_gorgon",SP_monster_gorgon,CID_GORGON},
|
|
{"monster_rat",SP_monster_rat,CID_RAT},
|
|
{"monster_plagueElf", SP_monster_plagueElf,CID_PLAGUEELF},
|
|
{"monster_fish", SP_monster_fish,CID_FISH},
|
|
{"monster_harpy", SP_monster_harpy,CID_HARPY},
|
|
{"monster_spreader", SP_monster_spreader,CID_SPREADER},
|
|
{"monster_assassin",SP_monster_assassin,CID_ASSASSIN},
|
|
{"monster_chicken",SP_monster_chicken,CID_CHICKEN},
|
|
{"monster_tcheckrik_male",SP_monster_tcheckrik_male,CID_TCHECKRIK},
|
|
{"monster_gkrokon", SP_Monster_Gkrokon,CID_GKROKON},
|
|
|
|
#if !DEMO_CODE
|
|
{"monster_gorgon_leader",SP_monster_gorgon_leader,CID_GORGON},
|
|
{"monster_rat_giant",SP_monster_rat_giant,CID_RAT},
|
|
{"monster_palace_plague_guard", SP_monster_palace_plague_guard,CID_PLAGUEELF},
|
|
{"monster_palace_plague_guard_invisible", SP_monster_palace_plague_guard_invisible,CID_PLAGUEELF},
|
|
{"monster_elflord", SP_monster_elflord,CID_ELFLORD},
|
|
{"monster_ssithra",SP_monster_plague_ssithra,CID_SSITHRA},
|
|
{"monster_mssithra",SP_monster_mssithra,CID_MSSITHRA},
|
|
{"monster_chkroktk",SP_monster_chkroktk,CID_RAT},
|
|
{"monster_tcheckrik_female",SP_monster_tcheckrik_female,CID_TCHECKRIK},
|
|
{"monster_tcheckrik_mothers",SP_monster_tcheckrik_mothers,CID_MOTHER},
|
|
{"monster_high_priestess",SP_monster_high_priestess,CID_HIGHPRIESTESS},
|
|
{"monster_ogle",SP_monster_ogle,CID_OGLE},
|
|
{"monster_seraph_overlord",SP_monster_seraph_overlord,CID_SERAPH_OVERLORD},
|
|
{"monster_seraph_guard",SP_monster_seraph_guard,CID_SERAPH_GUARD},
|
|
{"monster_bee",SP_monster_bee,CID_BEE},
|
|
{"monster_morcalavin",SP_monster_morcalavin,CID_MORK},
|
|
{"monster_trial_beast",SP_monster_trial_beast,CID_TBEAST},
|
|
{"monster_imp", SP_monster_imp,CID_IMP},
|
|
#endif
|
|
{"character_corvus1",SP_character_corvus1,CID_CORVUS},
|
|
{"character_corvus2",SP_character_corvus2,CID_CORVUS2},
|
|
{"character_corvus3",SP_character_corvus3,CID_CORVUS3},
|
|
{"character_corvus4",SP_character_corvus4,CID_CORVUS4},
|
|
{"character_corvus5",SP_character_corvus5,CID_CORVUS5},
|
|
{"character_corvus6",SP_character_corvus6,CID_CORVUS6},
|
|
{"character_corvus7",SP_character_corvus7,CID_CORVUS7},
|
|
{"character_corvus8",SP_character_corvus8,CID_CORVUS8},
|
|
{"character_corvus9",SP_character_corvus9,CID_CORVUS9},
|
|
{"character_dranor",SP_character_dranor,CID_DRANOR},
|
|
{"character_elflord",SP_character_elflord,CID_C_ELFLORD},
|
|
{"character_highpriestess",SP_character_highpriestess,CID_C_HIGHPRIESTESS},
|
|
{"character_highpriestess2",SP_character_highpriestess2,CID_C_HIGHPRIESTESS2},
|
|
{"character_morcalavin",SP_character_morcalavin,CID_C_MORCALAVIN},
|
|
{"character_sidhe_guard",SP_character_sidhe_guard,CID_PLAGUEELF},
|
|
{"character_siernan1",SP_character_siernan1,CID_C_SIERNAN1},
|
|
{"character_siernan2",SP_character_siernan2,CID_C_SIERNAN2},
|
|
{"character_ssithra_scout",SP_character_ssithra_scout,CID_SSITHRA_SCOUT},
|
|
{"character_ssithra_victim",SP_character_ssithra_victim,CID_SSITHRA_VICTIM},
|
|
{"character_tome",SP_character_tome,CID_C_TOME},
|
|
|
|
// Heretic2 specific spawns.
|
|
|
|
{"breakable_brush",SP_breakable_brush,CID_BBRUSH},
|
|
|
|
|
|
{"light_walltorch",SP_light_walltorch,CID_LIGHT},
|
|
{"light_floortorch",SP_light_floortorch,CID_LIGHT},
|
|
// {"light_flame",SP_light_flame,CID_LIGHT},
|
|
{"light_torch1",SP_light_torch1,CID_LIGHT},
|
|
{"light_gem2",SP_light_gem2,CID_LIGHT},
|
|
{"light_chandelier1",SP_light_chandelier1,CID_LIGHT},
|
|
{"light_chandelier2",SP_light_chandelier2,CID_LIGHT},
|
|
{"light_chandelier3",SP_light_chandelier3,CID_LIGHT},
|
|
{"light_lantern1",SP_light_lantern1,CID_LIGHT},
|
|
{"light_lantern2",SP_light_lantern2,CID_LIGHT},
|
|
{"light_lantern3",SP_light_lantern3,CID_LIGHT},
|
|
{"light_lantern4",SP_light_lantern4,CID_LIGHT},
|
|
{"light_lantern5",SP_light_lantern5,CID_LIGHT},
|
|
{"light_buglight",SP_light_buglight,CID_LIGHT},
|
|
|
|
{"env_fire",SP_env_fire,CID_OBJECT},
|
|
{"env_dust",SP_env_dust,CID_OBJECT},
|
|
{"env_smoke",SP_env_smoke,CID_OBJECT},
|
|
{"env_mist",SP_env_mist,CID_OBJECT},
|
|
{"env_bubbler",SP_env_bubbler,CID_OBJECT},
|
|
{"env_water_drip",SP_env_water_drip,CID_OBJECT},
|
|
{"env_water_fountain",SP_env_water_fountain,CID_OBJECT},
|
|
{"env_waterfall_base",SP_env_waterfall_base,CID_OBJECT},
|
|
{"env_sun1",SP_env_sun1,CID_OBJECT},
|
|
{"env_muck",SP_env_muck,CID_OBJECT},
|
|
// {"env_galaxy",SP_env_galaxy,CID_OBJECT},
|
|
|
|
{"sound_ambient_silverspring",SP_sound_ambient_silverspring,-1},
|
|
{"sound_ambient_swampcanyon",SP_sound_ambient_swampcanyon,-1},
|
|
{"sound_ambient_andoria",SP_sound_ambient_andoria,-1},
|
|
{"sound_ambient_hive",SP_sound_ambient_hive,-1},
|
|
{"sound_ambient_mine",SP_sound_ambient_mine,-1},
|
|
{"sound_ambient_cloudfortress",SP_sound_ambient_cloudfortress,-1},
|
|
|
|
{"obj_andwallhanging",SP_obj_andwallhanging,CID_OBJECT},
|
|
{"obj_banner",SP_obj_banner,CID_OBJECT},
|
|
{"obj_banneronpole",SP_obj_banneronpole,CID_OBJECT},
|
|
{"obj_barrel",SP_obj_barrel,CID_OBJECT},
|
|
{"obj_barrel_explosive",SP_obj_barrel_explosive,CID_OBJECT},
|
|
{"obj_barrel_metal",SP_obj_barrel_metal,CID_OBJECT},
|
|
{"obj_basket",SP_obj_basket,CID_OBJECT},
|
|
{"obj_bench",SP_obj_bench,CID_OBJECT},
|
|
{"obj_bigcrystal",SP_obj_bigcrystal,CID_OBJECT},
|
|
{"obj_biotank",SP_obj_biotank,CID_OBJECT},
|
|
{"obj_bloodsplat",SP_obj_bloodsplat,CID_OBJECT},
|
|
{"obj_bookclosed",SP_obj_bookclosed,CID_OBJECT},
|
|
{"obj_bookopen",SP_obj_bookopen,CID_OBJECT},
|
|
{"obj_bottle1",SP_obj_bottle1,CID_OBJECT},
|
|
{"obj_broom",SP_obj_broom,CID_OBJECT},
|
|
{"obj_bucket",SP_obj_bucket,CID_OBJECT},
|
|
{"obj_bush1",SP_obj_bush1,CID_OBJECT},
|
|
{"obj_bush2",SP_obj_bush2,CID_OBJECT},
|
|
{"obj_cactus",SP_obj_cactus,CID_OBJECT},
|
|
{"obj_cactus3",SP_obj_cactus3,CID_OBJECT},
|
|
{"obj_cactus4",SP_obj_cactus4,CID_OBJECT},
|
|
{"obj_cauldron",SP_obj_cauldron,CID_OBJECT},
|
|
{"obj_chair1",SP_obj_chair1,CID_OBJECT},
|
|
{"obj_chair2",SP_obj_chair2,CID_OBJECT},
|
|
{"obj_chair3",SP_obj_chair3,CID_OBJECT},
|
|
{"obj_chest1",SP_obj_chest1,CID_OBJECT},
|
|
{"obj_chest2",SP_obj_chest2,CID_OBJECT},
|
|
{"obj_chest3",SP_obj_chest3,CID_OBJECT},
|
|
{"obj_choppeddude",SP_obj_choppeddude,CID_OBJECT},
|
|
{"obj_claybowl",SP_obj_claybowl,CID_OBJECT},
|
|
{"obj_clayjar",SP_obj_clayjar,CID_OBJECT},
|
|
{"obj_cocoon",SP_obj_cocoon,CID_OBJECT},
|
|
{"obj_cocoonopen",SP_obj_cocoonopen,CID_OBJECT},
|
|
{"obj_cog1",SP_obj_cog1,CID_OBJECT},
|
|
{"obj_corpse1",SP_obj_corpse1,CID_OBJECT},
|
|
{"obj_corpse2",SP_obj_corpse2,CID_OBJECT},
|
|
{"obj_corpse_ogle",SP_obj_corpse_ogle,CID_OBJECT},
|
|
{"obj_corpse_ssithra",SP_obj_corpse_ssithra,CID_OBJECT},
|
|
{"obj_dying_elf",SP_obj_dying_elf,CID_OBJECT},
|
|
{"obj_eggpan",SP_obj_eggpan,CID_OBJECT},
|
|
{"obj_eyeball_jar",SP_obj_eyeball_jar,CID_OBJECT},
|
|
{"obj_firepot",SP_obj_firepot,CID_OBJECT},
|
|
{"obj_fishhead1",SP_obj_fishhead1,CID_OBJECT},
|
|
{"obj_fishhead2",SP_obj_fishhead2,CID_OBJECT},
|
|
{"obj_fishtrap",SP_obj_fishtrap,CID_OBJECT},
|
|
{"obj_flagonpole",SP_obj_flagonpole,CID_OBJECT},
|
|
{"obj_floor_candelabrum",SP_obj_floor_candelabrum,CID_OBJECT},
|
|
{"obj_fountain_fish",SP_obj_fountain_fish,CID_OBJECT},
|
|
{"obj_frypan",SP_obj_frypan,CID_OBJECT},
|
|
{"obj_gascan",SP_obj_gascan,CID_OBJECT},
|
|
{"obj_gorgonbones",SP_obj_gorgonbones,CID_OBJECT},
|
|
{"obj_grass",SP_obj_grass,CID_OBJECT},
|
|
{"obj_hangingdude",SP_obj_hangingdude,CID_OBJECT},
|
|
{"obj_hanging_ogle",SP_obj_hanging_ogle,CID_OBJECT},
|
|
{"obj_hivepriestessssymbol",SP_obj_hivepriestessssymbol,CID_OBJECT},
|
|
{"obj_jawbone",SP_obj_jawbone,CID_OBJECT},
|
|
{"obj_jug1",SP_obj_jug1,CID_OBJECT},
|
|
{"obj_kettle",SP_obj_kettle,CID_OBJECT},
|
|
{"obj_lab_parts_container",SP_obj_lab_parts_container,CID_OBJECT},
|
|
{"obj_lab_tray",SP_obj_lab_tray,CID_OBJECT},
|
|
{"obj_larva",SP_obj_larva,CID_OBJECT},
|
|
{"obj_larvabrokenegg",SP_obj_larvabrokenegg,CID_OBJECT},
|
|
{"obj_larvaegg",SP_obj_larvaegg,CID_OBJECT},
|
|
{"obj_lever1",SP_obj_lever1,CID_LEVER},
|
|
{"obj_lever2",SP_obj_lever2,CID_LEVER},
|
|
{"obj_lever3",SP_obj_lever3,CID_LEVER},
|
|
{"obj_metalchunk1",SP_obj_metalchunk1,CID_OBJECT},
|
|
{"obj_metalchunk2",SP_obj_metalchunk2,CID_OBJECT},
|
|
{"obj_metalchunk3",SP_obj_metalchunk3,CID_OBJECT},
|
|
{"obj_minecart",SP_obj_minecart,CID_OBJECT},
|
|
{"obj_minecart2",SP_obj_minecart2,CID_OBJECT},
|
|
{"obj_minecart3",SP_obj_minecart3,CID_OBJECT},
|
|
{"obj_moss1",SP_obj_moss1,CID_OBJECT},
|
|
{"obj_moss2",SP_obj_moss2,CID_OBJECT},
|
|
{"obj_moss3",SP_obj_moss3,CID_OBJECT},
|
|
{"obj_moss4",SP_obj_moss4,CID_OBJECT},
|
|
{"obj_moss5",SP_obj_moss5,CID_OBJECT},
|
|
{"obj_nest",SP_obj_nest,CID_OBJECT},
|
|
{"obj_pick",SP_obj_pick,CID_OBJECT},
|
|
{"obj_pipe1",SP_obj_pipe1,CID_OBJECT},
|
|
{"obj_pipe2",SP_obj_pipe2,CID_OBJECT},
|
|
{"obj_pipewheel",SP_obj_pipewheel,CID_OBJECT},
|
|
{"obj_plant1",SP_obj_plant1,CID_OBJECT},
|
|
{"obj_plant2",SP_obj_plant2,CID_OBJECT},
|
|
{"obj_plant3",SP_obj_plant3,CID_OBJECT},
|
|
{"obj_pot1",SP_obj_pot1,CID_OBJECT},
|
|
{"obj_pot2",SP_obj_pot2,CID_OBJECT},
|
|
{"obj_pottedplant",SP_obj_pottedplant,CID_OBJECT},
|
|
{"obj_pushcart",SP_obj_pushcart,CID_OBJECT},
|
|
{"obj_queenthrone",SP_obj_queenthrone,CID_OBJECT},
|
|
{"obj_queenchair",SP_obj_queenchair,CID_OBJECT},
|
|
{"obj_ring_plaque2",SP_obj_ring_plaque2,CID_OBJECT},
|
|
{"obj_rocks1",SP_obj_rocks1,CID_OBJECT},
|
|
{"obj_rocks2",SP_obj_rocks2,CID_OBJECT},
|
|
{"obj_rope",SP_obj_rope,CID_OBJECT},
|
|
{"obj_ropechain",SP_obj_ropechain,CID_OBJECT},
|
|
{"obj_scroll",SP_obj_scroll,CID_OBJECT},
|
|
{"obj_seasonglobe",SP_obj_seasonglobe,CID_OBJECT},
|
|
{"obj_shovel",SP_obj_shovel,CID_OBJECT},
|
|
{"obj_shrine",SP_obj_shrine,CID_OBJECT},
|
|
{"obj_sign1",SP_obj_sign1,CID_OBJECT},
|
|
{"obj_sign4",SP_obj_sign4,CID_OBJECT},
|
|
{"obj_skullpole",SP_obj_skullpole,CID_OBJECT},
|
|
{"obj_spellbook",SP_obj_spellbook,CID_OBJECT},
|
|
{"obj_stalactite1",SP_obj_stalactite1,CID_OBJECT},
|
|
{"obj_stalactite2",SP_obj_stalactite2,CID_OBJECT},
|
|
{"obj_stalactite3",SP_obj_stalactite3,CID_OBJECT},
|
|
{"obj_stalagmite1",SP_obj_stalagmite1,CID_OBJECT},
|
|
{"obj_stalagmite2",SP_obj_stalagmite2,CID_OBJECT},
|
|
{"obj_stalagmite3",SP_obj_stalagmite3,CID_OBJECT},
|
|
{"obj_statue_boulderfish",SP_obj_statue_boulderfish,CID_OBJECT},
|
|
{"obj_statue_corvus",SP_obj_statue_corvus,CID_OBJECT},
|
|
{"obj_statue_dolphin1",SP_obj_statue_dolphin1,CID_OBJECT},
|
|
{"obj_statue_dolphin2",SP_obj_statue_dolphin2,CID_OBJECT},
|
|
{"obj_statue_dolphin3",SP_obj_statue_dolphin3,CID_OBJECT},
|
|
{"obj_statue_dolphin4",SP_obj_statue_dolphin4,CID_OBJECT},
|
|
{"obj_statue_dragon",SP_obj_statue_dragon,CID_OBJECT},
|
|
{"obj_statue_dragonhead",SP_obj_statue_dragonhead,CID_OBJECT},
|
|
{"obj_statue_duckbill1",SP_obj_statue_duckbill1,CID_OBJECT},
|
|
{"obj_statue_duckbill2",SP_obj_statue_duckbill2,CID_OBJECT},
|
|
{"obj_statue_guardian",SP_obj_statue_guardian,CID_OBJECT},
|
|
{"obj_statue_saraphbust",SP_obj_statue_saraphbust,CID_OBJECT},
|
|
{"obj_statue_sariph",SP_obj_statue_sariph,CID_OBJECT},
|
|
{"obj_statue_sithraguard",SP_obj_statue_sithraguard,CID_OBJECT},
|
|
{"obj_statue_tchecktrik_bust",SP_obj_statue_tchecktrik_bust,CID_OBJECT},
|
|
{"obj_statue_techeckrikleft",SP_obj_statue_techeckrikleft,CID_OBJECT},
|
|
{"obj_statue_techeckrikright",SP_obj_statue_techeckrikright,CID_OBJECT},
|
|
{"obj_statue_techeckriktomb",SP_obj_statue_techeckriktomb,CID_OBJECT},
|
|
{"obj_stein",SP_obj_stein,CID_OBJECT},
|
|
{"obj_swampflat_top",SP_obj_swampflat_top,CID_OBJECT},
|
|
{"obj_swampflat_bottom",SP_obj_swampflat_bottom,CID_OBJECT},
|
|
{"obj_table1",SP_obj_table1,CID_OBJECT},
|
|
{"obj_table2",SP_obj_table2,CID_OBJECT},
|
|
{"obj_tapper",SP_obj_tapper,CID_OBJECT},
|
|
{"obj_throne",SP_obj_throne,CID_OBJECT},
|
|
{"obj_torture_bed",SP_obj_torture_bed,CID_OBJECT},
|
|
{"obj_torture_ironmaiden",SP_obj_torture_ironmaiden,CID_OBJECT},
|
|
{"obj_torture_rack",SP_obj_torture_rack,CID_OBJECT},
|
|
{"obj_torture_table",SP_obj_torture_table,CID_OBJECT},
|
|
{"obj_torture_wallring",SP_obj_torture_wallring,CID_OBJECT},
|
|
{"obj_tree",SP_obj_tree,CID_OBJECT},
|
|
{"obj_tree2",SP_obj_tree2,CID_OBJECT},
|
|
{"obj_tree3",SP_obj_tree3,CID_OBJECT},
|
|
{"obj_treefallen",SP_obj_treefallen,CID_OBJECT},
|
|
{"obj_treestump",SP_obj_treestump,CID_OBJECT},
|
|
{"obj_treetall",SP_obj_treetall,CID_OBJECT},
|
|
{"obj_treetop",SP_obj_treetop,CID_OBJECT},
|
|
{"obj_urn",SP_obj_urn,CID_OBJECT},
|
|
{"obj_venusflytrap",SP_obj_venusflytrap,CID_OBJECT},
|
|
{"obj_wallringplaque",SP_obj_wallringplaque,CID_OBJECT},
|
|
{"obj_web",SP_obj_web,CID_OBJECT},
|
|
{"obj_wheelbarrow",SP_obj_wheelbarrow,CID_OBJECT},
|
|
{"obj_wheelbarrowdamaged",SP_obj_wheelbarrowdamaged,CID_OBJECT},
|
|
{"obj_woodpile",SP_obj_woodpile,CID_OBJECT},
|
|
|
|
{"obj_morcalavin_barrier",SP_obj_morcalavin_barrier,CID_OBJECT},
|
|
|
|
{"flamethrower",SP_flamethrower,CID_FLAMETHROWER},
|
|
|
|
{"item_spitter", SP_item_spitter,-1},
|
|
|
|
{"info_buoy", SP_info_buoy,-1},
|
|
|
|
{"shrine_heal", shrine_heal, CID_TRIGGER},
|
|
{"shrine_armor", shrine_armor, CID_TRIGGER},
|
|
{"shrine_staff", shrine_staff, CID_TRIGGER},
|
|
{"shrine_lung", shrine_lung, CID_TRIGGER},
|
|
{"shrine_armor_gold", shrine_armor_gold, CID_TRIGGER},
|
|
{"shrine_light", shrine_light, CID_TRIGGER},
|
|
{"shrine_mana", shrine_mana, CID_TRIGGER},
|
|
{"shrine_ghost", shrine_ghost, CID_TRIGGER},
|
|
{"shrine_reflect", shrine_reflect, CID_TRIGGER},
|
|
{"shrine_powerup", shrine_powerup, CID_TRIGGER},
|
|
{"shrine_speed", shrine_speed, CID_TRIGGER},
|
|
{"shrine_random", shrine_random, CID_TRIGGER},
|
|
|
|
{"script_runner", SP_script_runner, CID_TRIGGER},
|
|
{NULL, NULL,-1}
|
|
};
|
|
|
|
/*
|
|
===============
|
|
ED_CallSpawn
|
|
|
|
Finds the spawn function for the entity and calls it
|
|
===============
|
|
*/
|
|
void ED_CallSpawn (edict_t *ent)
|
|
{
|
|
extern qboolean loadingBaseEnts;
|
|
|
|
spawn_t *s;
|
|
gitem_t *item;
|
|
|
|
if (!ent->classname)
|
|
{
|
|
gi.dprintf ("ED_CallSpawn: NULL classname\n");
|
|
return;
|
|
}
|
|
|
|
if(item = IsItem(ent))
|
|
{
|
|
SpawnItem(ent, item);
|
|
|
|
return;
|
|
}
|
|
|
|
// check normal spawn functions
|
|
for (s=spawns ; s->name ; s++)
|
|
{
|
|
if (!strcmp(s->name, ent->classname))
|
|
{ // found it
|
|
if((s->CID != -1) && !Cid_init[s->CID]) // Need to call once per level that item is on
|
|
{
|
|
classStaticsInits[s->CID]();
|
|
Cid_init[s->CID] = -1;
|
|
ent->classID = s->CID; // Make sure classID is set
|
|
}
|
|
|
|
ent->classID = 0;
|
|
if(s->CID != -1)
|
|
{
|
|
ent->classID = s->CID;
|
|
}
|
|
s->spawn (ent); // Need to call for every item
|
|
return;
|
|
}
|
|
}
|
|
gi.dprintf ("%s doesn't have a spawn function\n", ent->classname);
|
|
}
|
|
|
|
// end
|