- {"1", 1, IT_AXE, STAT_SHELLS, 0},
- {"2", 2, IT_SHOTGUN, STAT_SHELLS, 1},
- {"3", 3, IT_SUPER_SHOTGUN, STAT_SHELLS, 1},
- {"4", 4, IT_NAILGUN, STAT_NAILS, 1},
- {"5", 5, IT_SUPER_NAILGUN, STAT_NAILS, 1},
- {"6", 6, IT_GRENADE_LAUNCHER, STAT_ROCKETS, 1},
- {"7", 7, IT_ROCKET_LAUNCHER, STAT_ROCKETS, 1},
- {"8", 8, IT_LIGHTNING, STAT_CELLS, 1},
- {"9", 9, 128, STAT_CELLS, 1}, // generic energy weapon for mods
- {"p", 209, 128, STAT_CELLS, 1}, // dpmod plasma gun
- {"w", 210, 8388608, STAT_CELLS, 1}, // dpmod plasma wave cannon
- {"l", 225, HIT_LASER_CANNON, STAT_CELLS, 1}, // hipnotic laser cannon
- {"h", 226, HIT_MJOLNIR, STAT_CELLS, 0}, // hipnotic mjolnir hammer
- {NULL, 0, 0, 0, 0}
-};
+ memset(in_bestweapon_info, 0, sizeof(in_bestweapon_info));
+ IN_BestWeapon_Register("1", 1, IT_AXE, IT_AXE, STAT_SHELLS, 0);
+ IN_BestWeapon_Register("2", 2, IT_SHOTGUN, IT_SHOTGUN, STAT_SHELLS, 1);
+ IN_BestWeapon_Register("3", 3, IT_SUPER_SHOTGUN, IT_SUPER_SHOTGUN, STAT_SHELLS, 1);
+ IN_BestWeapon_Register("4", 4, IT_NAILGUN, IT_NAILGUN, STAT_NAILS, 1);
+ IN_BestWeapon_Register("5", 5, IT_SUPER_NAILGUN, IT_SUPER_NAILGUN, STAT_NAILS, 1);
+ IN_BestWeapon_Register("6", 6, IT_GRENADE_LAUNCHER, IT_GRENADE_LAUNCHER, STAT_ROCKETS, 1);
+ IN_BestWeapon_Register("7", 7, IT_ROCKET_LAUNCHER, IT_ROCKET_LAUNCHER, STAT_ROCKETS, 1);
+ IN_BestWeapon_Register("8", 8, IT_LIGHTNING, IT_LIGHTNING, STAT_CELLS, 1);
+ IN_BestWeapon_Register("9", 9, 128, 128, STAT_CELLS, 1); // generic energy weapon for mods
+ IN_BestWeapon_Register("p", 209, 128, 128, STAT_CELLS, 1); // dpmod plasma gun
+ IN_BestWeapon_Register("w", 210, 8388608, 8388608, STAT_CELLS, 1); // dpmod plasma wave cannon
+ IN_BestWeapon_Register("l", 225, HIT_LASER_CANNON, HIT_LASER_CANNON, STAT_CELLS, 1); // hipnotic laser cannon
+ IN_BestWeapon_Register("h", 226, HIT_MJOLNIR, HIT_MJOLNIR, STAT_CELLS, 0); // hipnotic mjolnir hammer
+}
+
+void IN_BestWeapon_Register_f (void)
+{
+ if(Cmd_Argc() == 7)
+ {
+ IN_BestWeapon_Register(
+ Cmd_Argv(1),
+ atoi(Cmd_Argv(2)),
+ atoi(Cmd_Argv(3)),
+ atoi(Cmd_Argv(4)),
+ atoi(Cmd_Argv(5)),
+ atoi(Cmd_Argv(6))
+ );
+ }
+ else if(Cmd_Argc() == 2 && !strcmp(Cmd_Argv(1), "clear"))
+ {
+ memset(in_bestweapon_info, 0, sizeof(in_bestweapon_info));
+ }
+ else if(Cmd_Argc() == 2 && !strcmp(Cmd_Argv(1), "quake"))
+ {
+ IN_BestWeapon_ResetData();
+ }
+ else
+ {
+ Con_Printf("Usage: %s weaponshortname impulse itemcode activeweaponcode ammostat ammomin; %s clear; %s quake\n", Cmd_Argv(0), Cmd_Argv(0), Cmd_Argv(0));
+ }
+}
+