-#ifndef MENUQC
-int v_bumblebee(entity, int);
-#endif
-REGISTER_VEHICLE_SIMPLE(
-/* VEH_##id */ BUMBLEBEE,
-/* spawnflags */ VHF_DMGSHAKE,
-/* mins,maxs */ '-245 -130 -130', '230 130 130',
-/* model */ "models/vehicles/bumblebee_body.dpm",
-/* head_model */ "",
-/* hud_model */ "models/vehicles/spiderbot_cockpit.dpm",
-/* tags */ "", "", "tag_viewport",
-/* netname */ "bumblebee",
-/* fullname */ _("Bumblebee")
-) {
- this.m_icon = "vehicle_bumble";
-#ifndef MENUQC
- this.vehicle_func = v_bumblebee;
-#endif
-}
+
+CLASS(Bumblebee, Vehicle)
+/* spawnflags */ ATTRIB(Bumblebee, spawnflags, int, VHF_DMGSHAKE);
+/* mins */ ATTRIB(Bumblebee, mins, vector, '-245 -130 -130');
+/* maxs */ ATTRIB(Bumblebee, maxs, vector, '230 130 130');
+/* model */ ATTRIB(Bumblebee, mdl, string, "models/vehicles/bumblebee_body.dpm");
+/* model */ ATTRIB(Bumblebee, model, string, "models/vehicles/bumblebee_body.dpm");
+/* head_model */ ATTRIB(Bumblebee, head_model, string, "");
+/* hud_model */ ATTRIB(Bumblebee, hud_model, string, "models/vehicles/spiderbot_cockpit.dpm");
+/* tags */ ATTRIB(Bumblebee, tag_head, string, "");
+/* tags */ ATTRIB(Bumblebee, tag_hud, string, "");
+/* tags */ ATTRIB(Bumblebee, tag_hview, string, "tag_viewport");
+/* netname */ ATTRIB(Bumblebee, netname, string, "bumblebee");
+/* fullname */ ATTRIB(Bumblebee, vehicle_name, string, _("Bumblebee"));
+/* icon */ ATTRIB(Bumblebee, m_icon, string, "vehicle_bumble");
+ENDCLASS(Bumblebee)
+
+REGISTER_VEHICLE(BUMBLEBEE, NEW(Bumblebee));