.entity tur_head;
-// entity properties of vehicleinfo:
-.int vehicleid; // VEH_...
-.string netname; // short name
-.string vehicle_name; // human readable name
-.int(int) vehicle_func; // v_...
-.string mdl; // currently a copy of the model
-.string model; // full name of model
-.string head_model; // full name of tur_head model
-.string hud_model; // cockpit model
-.string tag_head; // tur_head model tag
-.string tag_hud; // hud model tag
-.string tag_view; // cockpit model tag
-.int() PlayerPhysplug; // player physics mod
-.int spawnflags;
-.vector mins, maxs; // vehicle hitbox size
-
// other useful macros
#define VEH_ACTION(vehicletype,mrequest) (get_vehicleinfo(vehicletype)).vehicle_func(mrequest)
#define VEH_NAME(vehicletype) (get_vehicleinfo(vehicletype)).vehicle_name
const int VEH_FIRST = 1;
#define VEH_LAST (VEH_FIRST + VEH_COUNT - 1)
/** If you register a new vehicle, make sure to add it to all.inc */
-#define REGISTER_VEHICLE(id, class) REGISTER(RegisterVehicles, vehicle_info, vehicle_info, VEH_COUNT, id, m_id, NEW(class))
+#define REGISTER_VEHICLE(id, class) REGISTER(RegisterVehicles, VEH, vehicle_info, VEH_COUNT, id, vehicleid, NEW(class))
#include "vehicle.qh"
-#define REGISTER_VEHICLE_SIMPLE(id,func,vehicleflags,min_s,max_s,modelname,headmodelname,hudmodelname,headtag,hudtag,viewtag,shortname,vname) \
- int VEH_##id; \
- int func(int); \
- REGISTER_VEHICLE(id, Vehicle) { \
- VEH_##id = VEH_LAST; \
- register_vehicle(this,VEH_##id,func,vehicleflags,min_s,max_s,modelname,headmodelname,hudmodelname,headtag,hudtag,viewtag,shortname,vname); \
- } \
- REGISTER_INIT(vehicle_info, id)
+#define REGISTER_VEHICLE_SIMPLE(id, func, vehicleflags, min_s, max_s, modelname, headmodelname, hudmodelname, headtag, hudtag, viewtag, shortname, vname) \
+ REGISTER_VEHICLE(id, Vehicle) { \
+ this.netname = shortname; \
+ this.vehicle_name = vname; \
+ this.vehicle_func = func; \
+ this.mdl = modelname; \
+ this.spawnflags = vehicleflags; \
+ this.mins = min_s; \
+ this.maxs = max_s; \
+ this.model = modelname; \
+ this.head_model = headmodelname; \
+ this.hud_model = hudmodelname; \
+ this.tag_head = headtag; \
+ this.tag_hud = hudtag; \
+ this.tag_view = viewtag; \
+ } \
+ REGISTER_INIT(VEH, id)
REGISTER_REGISTRY(RegisterVehicles)
-void register_vehicle(entity e, int id, int(int) 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);
-void register_vehicles_done();
+REGISTER_VEHICLE(NULL, Vehicle);
#include "all.inc"
-ACCUMULATE_FUNCTION(RegisterVehicles, register_vehicles_done);
-
#endif