| 207 | } |
| 208 | |
| 209 | void weapon_startup() |
| 210 | { |
| 211 | // TFE: Weapon data is set from external data instead of being hardcoded as in vanilla DF |
| 212 | TFE_ExternalData::ExternalWeapon* externalWeapons = TFE_ExternalData::getExternalWeapons(); |
| 213 | setWeaponData(WPN_FIST, externalWeapons); |
| 214 | setWeaponData(WPN_PISTOL, externalWeapons); |
| 215 | setWeaponData(WPN_RIFLE, externalWeapons); |
| 216 | setWeaponData(WPN_THERMAL_DET, externalWeapons); |
| 217 | setWeaponData(WPN_REPEATER, externalWeapons); |
| 218 | setWeaponData(WPN_FUSION, externalWeapons); |
| 219 | setWeaponData(WPN_MORTAR, externalWeapons); |
| 220 | setWeaponData(WPN_MINE, externalWeapons); |
| 221 | setWeaponData(WPN_CONCUSSION, externalWeapons); |
| 222 | setWeaponData(WPN_CANNON, externalWeapons); |
| 223 | |
| 224 | s_gasmaskTexture = loadWeaponTexture(TFE_ExternalData::getExternalGasmask()->texture); |
| 225 | s_gasMaskXpos = TFE_ExternalData::getExternalGasmask()->xPos; |
| 226 | s_gasMaskYpos = TFE_ExternalData::getExternalGasmask()->yPos; |
| 227 | |
| 228 | // Load Sounds. |
| 229 | s_punchSwingSndSrc = sound_load("swing.voc", SOUND_PRIORITY_HIGH3); |
| 230 | s_pistolSndSrc = sound_load("pistol-1.voc", SOUND_PRIORITY_HIGH0); |
| 231 | s_pistolEmptySndSrc = sound_load("pistout1.voc", SOUND_PRIORITY_HIGH0); |
| 232 | s_rifleSndSrc = sound_load("rifle-1.voc", SOUND_PRIORITY_HIGH0); |
| 233 | s_rifleEmptySndSrc = sound_load("riflout.voc", SOUND_PRIORITY_HIGH0); |
| 234 | s_fusion1SndSrc = sound_load("fusion1.voc", SOUND_PRIORITY_HIGH3); |
| 235 | s_fusion2SndSrc = sound_load("fusion2.voc", SOUND_PRIORITY_HIGH3); |
| 236 | s_repeaterSndSrc = sound_load("repeater.voc", SOUND_PRIORITY_HIGH3); |
| 237 | s_repeater1SndSrc = sound_load("repeat-1.voc", SOUND_PRIORITY_HIGH3); |
| 238 | s_repeaterEmptySndSrc = sound_load("rep-emp.voc", SOUND_PRIORITY_HIGH3); |
| 239 | s_mortarFireSndSrc = sound_load("mortar4.voc", SOUND_PRIORITY_HIGH3); |
| 240 | s_mortarFireSndSrc2 = sound_load("mortar2.voc", SOUND_PRIORITY_HIGH3); |
| 241 | s_mortarEmptySndSrc = sound_load("mortar9.voc", SOUND_PRIORITY_HIGH3); |
| 242 | s_mineSndSrc = sound_load("claymor1.voc", SOUND_PRIORITY_HIGH3); |
| 243 | s_concussion6SndSrc = sound_load("concuss6.voc", SOUND_PRIORITY_HIGH3); |
| 244 | s_concussion5SndSrc = sound_load("concuss5.voc", SOUND_PRIORITY_HIGH3); |
| 245 | s_concussion1SndSrc = sound_load("concuss1.voc", SOUND_PRIORITY_HIGH3); |
| 246 | s_plasma4SndSrc = sound_load("plasma4.voc", SOUND_PRIORITY_HIGH3); |
| 247 | s_plasmaEmptySndSrc = sound_load("plas-emp.voc", SOUND_PRIORITY_HIGH3); |
| 248 | s_missile1SndSrc = sound_load("missile1.voc", SOUND_PRIORITY_HIGH3); |
| 249 | s_weaponChangeSnd = sound_load("weapon1.voc", SOUND_PRIORITY_LOW4); |
| 250 | s_superchargeCountdownSound = sound_load("quarter.voc", SOUND_PRIORITY_HIGH4); |
| 251 | |
| 252 | s_isShooting = JFALSE; |
| 253 | s_secondaryFire = JFALSE; |
| 254 | s_superCharge = JFALSE; |
| 255 | s_superChargeHud = JFALSE; |
| 256 | s_superchargeTask = nullptr; |
| 257 | s_weaponAutoMount2 = JFALSE; |
| 258 | s_prevWeapon = WPN_PISTOL; |
| 259 | s_curWeapon = WPN_PISTOL; |
| 260 | s_lastWeapon = WPN_PISTOL; |
| 261 | s_curPlayerWeapon = &s_playerWeaponList[WPN_PISTOL]; |
| 262 | } |
| 263 | |
| 264 | void weapon_enableAutomount(JBool enable) |
| 265 | { |
no test coverage detected