#ifndef VEHICLES_ALL_C #define VEHICLES_ALL_C #include "all.qh" #if defined(SVQC) #include "sv_vehicles.qc" #elif defined(CSQC) #include "cl_vehicles.qc" #endif #define IMPLEMENTATION #include "all.inc" #undef IMPLEMENTATION // VEHICLE PLUGIN SYSTEM entity dummy_vehicle_info; void vehicles_common_initialize() { #ifdef CSQC precache_model("models/vehicles/bomblet.md3"); precache_model("models/vehicles/clusterbomb.md3"); precache_model("models/vehicles/clusterbomb_fragment.md3"); precache_model("models/vehicles/rocket01.md3"); precache_model("models/vehicles/rocket02.md3"); precache_sound ("vehicles/alarm.wav"); precache_sound ("vehicles/alarm_shield.wav"); #endif // CSQC #ifdef SVQC precache_sound("onslaught/ons_hit2.wav"); precache_sound("onslaught/electricity_explode.wav"); addstat(STAT_HUD, AS_INT, hud); addstat(STAT_VEHICLESTAT_HEALTH, AS_INT, vehicle_health); addstat(STAT_VEHICLESTAT_SHIELD, AS_INT, vehicle_shield); addstat(STAT_VEHICLESTAT_ENERGY, AS_INT, vehicle_energy); addstat(STAT_VEHICLESTAT_W2MODE, AS_INT, vehicle_weapon2mode); addstat(STAT_VEHICLESTAT_AMMO1, AS_INT, vehicle_ammo1); addstat(STAT_VEHICLESTAT_RELOAD1, AS_INT, vehicle_reload1); addstat(STAT_VEHICLESTAT_AMMO2, AS_INT, vehicle_ammo2); addstat(STAT_VEHICLESTAT_RELOAD2, AS_INT, vehicle_reload2); #endif // SVQC } void register_vehicle(entity e, float id, float(float) func, float vehicleflags, vector min_s, vector max_s, string modelname, string headmodelname, string hudmodelname, string headtag, string hudtag, string viewtag, string shortname, string vname) { vehicle_info[id - 1] = e; e.classname = "vehicle_info"; e.vehicleid = id; e.netname = shortname; e.vehicle_name = vname; e.vehicle_func = func; e.mdl = modelname; e.spawnflags = vehicleflags; e.mins = min_s; e.maxs = max_s; e.model = modelname; e.head_model = headmodelname; e.hud_model = hudmodelname; e.tag_head = headtag; e.tag_hud = hudtag; e.tag_view = viewtag; #ifndef MENUQC vehicles_common_initialize(); #endif } void register_vehicles_done() { dummy_vehicle_info = spawn(); dummy_vehicle_info.classname = "vehicle_info"; dummy_vehicle_info.vehicleid = 0; // you can recognize dummies by this dummy_vehicle_info.netname = ""; dummy_vehicle_info.vehicle_name = "Vehicle"; dummy_vehicle_info.vehicle_func = v_null; dummy_vehicle_info.mdl = ""; dummy_vehicle_info.mins = '-0 -0 -0'; dummy_vehicle_info.maxs = '0 0 0'; dummy_vehicle_info.model = ""; dummy_vehicle_info.head_model = ""; dummy_vehicle_info.hud_model = ""; } entity get_vehicleinfo(float id) { entity m; if(id < VEH_FIRST || id > VEH_LAST) return dummy_vehicle_info; m = vehicle_info[id - 1]; if(m) return m; return dummy_vehicle_info; } #endif