mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-29 16:27:59 +03:00
Rename EulerAngles::Zero to EulerAngles::Identity; update AxisAngle
This commit is contained in:
parent
b29b68e36b
commit
94bfadca5f
61 changed files with 332 additions and 332 deletions
|
@ -22,7 +22,7 @@ namespace TEN::Gui
|
||||||
{
|
{
|
||||||
// Weapons
|
// Weapons
|
||||||
{ ID_PISTOLS_ITEM, 6, 0.5f, EulerAngles(ANGLE(244.0f), ANGLE(90.0f), ANGLE(276.0f)), OPT_EQUIP | OPT_COMBINABLE | OPT_CHOOSE_AMMO_PISTOLS, STRING_PISTOLS, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PISTOLS_ITEM, 6, 0.5f, EulerAngles(ANGLE(244.0f), ANGLE(90.0f), ANGLE(276.0f)), OPT_EQUIP | OPT_COMBINABLE | OPT_CHOOSE_AMMO_PISTOLS, STRING_PISTOLS, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PISTOLS_AMMO_ITEM, 4, 0.5f, EulerAngles::Zero, OPT_USE, STRING_PISTOL_AMMO, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PISTOLS_AMMO_ITEM, 4, 0.5f, EulerAngles::Identity, OPT_USE, STRING_PISTOL_AMMO, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_UZI_ITEM, -4, 0.5f, EulerAngles(ANGLE(135.0f), ANGLE(-90.0f), ANGLE(90.0f)), OPT_EQUIP | OPT_COMBINABLE | OPT_CHOOSE_AMMO_UZI, STRING_UZIS , NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_UZI_ITEM, -4, 0.5f, EulerAngles(ANGLE(135.0f), ANGLE(-90.0f), ANGLE(90.0f)), OPT_EQUIP | OPT_COMBINABLE | OPT_CHOOSE_AMMO_UZI, STRING_UZIS , NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_UZI_AMMO_ITEM, 5, 0.5f, EulerAngles(ANGLE(29.5f), 0, 0), OPT_USE, STRING_UZI_AMMO, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_UZI_AMMO_ITEM, 5, 0.5f, EulerAngles(ANGLE(29.5f), 0, 0), OPT_USE, STRING_UZI_AMMO, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_SHOTGUN_ITEM, -6, 0.8f, EulerAngles(ANGLE(270.0f), ANGLE(-20.0f), ANGLE(45)), OPT_EQUIP | OPT_COMBINABLE | OPT_CHOOSE_AMMO_SHOTGUN, STRING_SHOTGUN, 0x01, INV_ROT_Y },
|
{ ID_SHOTGUN_ITEM, -6, 0.8f, EulerAngles(ANGLE(270.0f), ANGLE(-20.0f), ANGLE(45)), OPT_EQUIP | OPT_COMBINABLE | OPT_CHOOSE_AMMO_SHOTGUN, STRING_SHOTGUN, 0x01, INV_ROT_Y },
|
||||||
|
@ -57,17 +57,17 @@ namespace TEN::Gui
|
||||||
{ ID_BIGMEDI_ITEM, 2, 0.7f, EulerAngles(0, ANGLE(180.0f), 0), OPT_USE, STRING_LARGE_MEDIPACK, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_BIGMEDI_ITEM, 2, 0.7f, EulerAngles(0, ANGLE(180.0f), 0), OPT_USE, STRING_LARGE_MEDIPACK, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_SMALLMEDI_ITEM, 0, 0.7f, EulerAngles(ANGLE(112.0f), ANGLE(180.0f), 0), OPT_USE, STRING_SMALL_MEDIPACK, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_SMALLMEDI_ITEM, 0, 0.7f, EulerAngles(ANGLE(112.0f), ANGLE(180.0f), 0), OPT_USE, STRING_SMALL_MEDIPACK, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_BINOCULARS_ITEM, -1, 0.5f, EulerAngles(ANGLE(10.0f), ANGLE(180.0f), 0), OPT_USE, STRING_BINOCULARS, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_BINOCULARS_ITEM, -1, 0.5f, EulerAngles(ANGLE(10.0f), ANGLE(180.0f), 0), OPT_USE, STRING_BINOCULARS, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_FLARE_INV_ITEM, 52, 0.8f, EulerAngles::Zero, OPT_USE, STRING_FLARES, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_FLARE_INV_ITEM, 52, 0.8f, EulerAngles::Identity, OPT_USE, STRING_FLARES, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_TIMEX_ITEM, 2, 0.4f, EulerAngles::Zero, OPT_STATS, STRING_STATISTICS, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_TIMEX_ITEM, 2, 0.4f, EulerAngles::Identity, OPT_STATS, STRING_STATISTICS, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PC_LOAD_INV_ITEM, 52, 0.3f, EulerAngles(0, ANGLE(180.0f), 0), OPT_LOAD, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PC_LOAD_INV_ITEM, 52, 0.3f, EulerAngles(0, ANGLE(180.0f), 0), OPT_LOAD, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PC_SAVE_INV_ITEM, 52, 0.3f, EulerAngles(0, ANGLE(180.0f), 0), OPT_SAVE, STRING_SAVE_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PC_SAVE_INV_ITEM, 52, 0.3f, EulerAngles(0, ANGLE(180.0f), 0), OPT_SAVE, STRING_SAVE_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_BURNING_TORCH_ITEM, 14, 0.5f, EulerAngles(ANGLE(90.0f), 0, 0), OPT_USE, STRING_TORCH, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_BURNING_TORCH_ITEM, 14, 0.5f, EulerAngles(ANGLE(90.0f), 0, 0), OPT_USE, STRING_TORCH, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_CROWBAR_ITEM, 4, 0.5f, EulerAngles(ANGLE(90.0f), 0, 0), OPT_USE, STRING_CROWBAR, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_CROWBAR_ITEM, 4, 0.5f, EulerAngles(ANGLE(90.0f), 0, 0), OPT_USE, STRING_CROWBAR, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_DIARY_ITEM, 0, 0.3f, EulerAngles(0, ANGLE(180.0f), 0), OPT_DIARY, STRING_DIARY, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_DIARY_ITEM, 0, 0.3f, EulerAngles(0, ANGLE(180.0f), 0), OPT_DIARY, STRING_DIARY, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_COMPASS_ITEM, -14, 0.5f, EulerAngles(ANGLE(90.0f), ANGLE(180.0f), 0), 0, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_COMPASS_ITEM, -14, 0.5f, EulerAngles(ANGLE(90.0f), ANGLE(180.0f), 0), 0, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_CLOCKWORK_BEETLE, 14, 0.5f, EulerAngles::Zero, OPT_USE, STRING_MECHANICAL_SCARAB, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_CLOCKWORK_BEETLE, 14, 0.5f, EulerAngles::Identity, OPT_USE, STRING_MECHANICAL_SCARAB, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_CLOCKWORK_BEETLE_COMBO1, 18, 0.5f, EulerAngles::Zero, OPT_COMBINABLE, STRING_MECHANICAL_SCARAB_1, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_CLOCKWORK_BEETLE_COMBO1, 18, 0.5f, EulerAngles::Identity, OPT_COMBINABLE, STRING_MECHANICAL_SCARAB_1, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_CLOCKWORK_BEETLE_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_COMBINABLE, STRING_MECHANICAL_SCARAB_2, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_CLOCKWORK_BEETLE_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_COMBINABLE, STRING_MECHANICAL_SCARAB_2, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_WATERSKIN1_EMPTY, 2, 0.5f, EulerAngles(ANGLE(285.0f), 0, 0), OPT_USE | OPT_COMBINABLE, STRING_WATERSKIN_SMALL_EMPTY, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_WATERSKIN1_EMPTY, 2, 0.5f, EulerAngles(ANGLE(285.0f), 0, 0), OPT_USE | OPT_COMBINABLE, STRING_WATERSKIN_SMALL_EMPTY, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_WATERSKIN1_1, 2, 0.5f, EulerAngles(ANGLE(285.0f), 0, 0), OPT_USE | OPT_COMBINABLE, STRING_WATERSKIN_SMALL_1L, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_WATERSKIN1_1, 2, 0.5f, EulerAngles(ANGLE(285.0f), 0, 0), OPT_USE | OPT_COMBINABLE, STRING_WATERSKIN_SMALL_1L, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_WATERSKIN1_2, 2, 0.5f, EulerAngles(ANGLE(285.0f), 0, 0), OPT_USE | OPT_COMBINABLE, STRING_WATERSKIN_SMALL_2L, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_WATERSKIN1_2, 2, 0.5f, EulerAngles(ANGLE(285.0f), 0, 0), OPT_USE | OPT_COMBINABLE, STRING_WATERSKIN_SMALL_2L, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
|
@ -81,188 +81,188 @@ namespace TEN::Gui
|
||||||
{ ID_DIARY_OPEN, 0, 0.9f, EulerAngles(0, ANGLE(90.0f), 0), 0, 0, 0},
|
{ ID_DIARY_OPEN, 0, 0.9f, EulerAngles(0, ANGLE(90.0f), 0), 0, 0, 0},
|
||||||
|
|
||||||
// Puzzles
|
// Puzzles
|
||||||
{ ID_PUZZLE_ITEM1, 14, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM1, 14, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM2, 14, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM2, 14, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM3, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM3, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM4, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM4, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM5, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM5, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM6, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM6, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM7, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM7, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM8, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM8, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM9, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM9, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM10, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM10, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM11, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM11, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM12, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM12, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM13, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM13, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM14, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM14, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM15, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM15, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM16, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM16, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
|
|
||||||
// Puzzle combos
|
// Puzzle combos
|
||||||
{ ID_PUZZLE_ITEM1_COMBO1, 18, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM1_COMBO1, 18, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM1_COMBO2, 18, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM1_COMBO2, 18, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM2_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM2_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM2_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM2_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM3_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM3_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM3_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM3_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM4_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM4_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM4_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM4_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM5_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM5_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM5_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM5_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM6_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM6_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM6_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM6_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM7_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM7_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM7_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM7_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM8_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM8_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM8_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM8_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM9_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM9_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM9_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM9_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM10_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM10_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM10_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM10_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM11_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM11_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM11_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM11_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM12_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM12_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM12_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM12_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM13_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM13_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM13_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM13_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM14_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM14_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM14_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM14_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM15_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM15_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM15_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM15_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM16_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM16_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PUZZLE_ITEM16_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PUZZLE_ITEM16_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
|
|
||||||
// Keys
|
// Keys
|
||||||
{ ID_KEY_ITEM1, 14, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM1, 14, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM2, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM2, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM3, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM3, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM4, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM4, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM5, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM5, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM6, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM6, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM7, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM7, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM8, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM8, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM9, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM9, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM10, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM10, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM11, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM11, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM12, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM12, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM13, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM13, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM14, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM14, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM15, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM15, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM16, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM16, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
|
|
||||||
// Key combos
|
// Key combos
|
||||||
{ ID_KEY_ITEM1_COMBO1, 18, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM1_COMBO1, 18, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM1_COMBO2, 18, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM1_COMBO2, 18, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM2_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM2_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM2_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM2_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM3_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM3_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM3_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM3_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM4_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM4_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM4_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM4_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM5_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM5_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM5_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM5_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM6_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM6_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM6_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM6_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM7_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM7_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM7_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM7_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM8_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM8_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM8_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM8_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM9_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM9_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM9_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM9_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM10_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM10_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM10_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM10_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM11_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM11_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM11_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM11_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM12_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM12_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM12_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM12_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM13_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM13_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM13_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM13_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM14_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM14_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM14_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM14_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM15_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM15_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM15_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM15_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM16_COMBO1, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM16_COMBO1, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_KEY_ITEM16_COMBO2, 8, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_KEY_ITEM16_COMBO2, 8, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
|
|
||||||
// Pickups
|
// Pickups
|
||||||
{ ID_PICKUP_ITEM1, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM1, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM2, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM2, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM3, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM3, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM4, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM4, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM5, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM5, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM6, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM6, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM7, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM7, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM8, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM8, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM9, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM9, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM10, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM10, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM11, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM11, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM12, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM12, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM13, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM13, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM14, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM14, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM15, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM15, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM16, 8, 0.5f, EulerAngles::Zero, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM16, 8, 0.5f, EulerAngles::Identity, OPT_USE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
|
|
||||||
// Pickup combos
|
// Pickup combos
|
||||||
{ ID_PICKUP_ITEM1_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM1_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM1_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM1_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM2_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM2_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM2_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM2_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM3_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM3_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM3_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM3_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM4_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM4_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM4_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM4_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM5_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM5_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM5_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM5_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM6_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM6_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM6_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM6_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM7_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM7_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM7_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM7_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM8_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM8_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM8_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM8_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM9_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM9_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM9_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM9_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM10_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM10_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM10_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM10_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM11_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM11_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM11_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM11_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM12_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM12_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM12_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM12_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM13_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM13_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM13_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM13_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM14_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM14_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM14_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM14_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM15_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM15_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM15_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM15_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM16_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM16_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_PICKUP_ITEM16_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_PICKUP_ITEM16_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
|
|
||||||
// Examines
|
// Examines
|
||||||
{ ID_EXAMINE1, 4, 0.5f, EulerAngles::Zero, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE1, 4, 0.5f, EulerAngles::Identity, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE2, 14, 0.5f, EulerAngles::Zero, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE2, 14, 0.5f, EulerAngles::Identity, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE3, 14, 0.5f, EulerAngles::Zero, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE3, 14, 0.5f, EulerAngles::Identity, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE4, 14, 0.5f, EulerAngles::Zero, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE4, 14, 0.5f, EulerAngles::Identity, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE5, 14, 0.5f, EulerAngles::Zero, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE5, 14, 0.5f, EulerAngles::Identity, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE6, 14, 0.5f, EulerAngles::Zero, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE6, 14, 0.5f, EulerAngles::Identity, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE7, 14, 0.5f, EulerAngles::Zero, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE7, 14, 0.5f, EulerAngles::Identity, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE8, 14, 0.5f, EulerAngles::Zero, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE8, 14, 0.5f, EulerAngles::Identity, OPT_EXAMINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
|
|
||||||
// Examines combos
|
// Examines combos
|
||||||
{ ID_EXAMINE1_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE1_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE1_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE1_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE2_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE2_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE2_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE2_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE3_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE3_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE3_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE3_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE4_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE4_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE4_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE4_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE5_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE5_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE5_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE5_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE6_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE6_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE6_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE6_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE7_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE7_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE7_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE7_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE8_COMBO1, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE8_COMBO1, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
{ ID_EXAMINE8_COMBO2, 14, 0.5f, EulerAngles::Zero, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
{ ID_EXAMINE8_COMBO2, 14, 0.5f, EulerAngles::Identity, OPT_USE | OPT_COMBINABLE, STRING_LOAD_GAME, NO_JOINT_BITS, INV_ROT_Y },
|
||||||
};
|
};
|
||||||
|
|
||||||
CombineList CombineTable[MAX_COMBINES] =
|
CombineList CombineTable[MAX_COMBINES] =
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace TEN::Hud
|
||||||
Vector2 Position = Vector2::Zero;
|
Vector2 Position = Vector2::Zero;
|
||||||
Vector2 Origin = Vector2::Zero;
|
Vector2 Origin = Vector2::Zero;
|
||||||
Vector2 Target = Vector2::Zero;
|
Vector2 Target = Vector2::Zero;
|
||||||
EulerAngles Orientation = EulerAngles::Zero;
|
EulerAngles Orientation = EulerAngles::Identity;
|
||||||
|
|
||||||
float Life = 0.0f;
|
float Life = 0.0f;
|
||||||
float Scale = 0.0f;
|
float Scale = 0.0f;
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace TEN::Entities::Player
|
||||||
int ProjectedFloorHeight = 0; // Used for primitive offset blend. TODO: Real offset blend feature + object parenting. -- Sezz 2023.09.27
|
int ProjectedFloorHeight = 0; // Used for primitive offset blend. TODO: Real offset blend feature + object parenting. -- Sezz 2023.09.27
|
||||||
float CalcJumpVelocity = 0;
|
float CalcJumpVelocity = 0;
|
||||||
Pose NextCornerPos = Pose::Zero;
|
Pose NextCornerPos = Pose::Zero;
|
||||||
EulerAngles TargetOrientation = EulerAngles::Zero;
|
EulerAngles TargetOrientation = EulerAngles::Identity;
|
||||||
|
|
||||||
int WaterSurfaceDist = 0;
|
int WaterSurfaceDist = 0;
|
||||||
short WaterCurrentActive = 0; // Sink number? Often used as bool.
|
short WaterCurrentActive = 0; // Sink number? Often used as bool.
|
||||||
|
|
|
@ -127,7 +127,7 @@ void lara_col_crouch_idle(ItemInfo* item, CollisionInfo* coll)
|
||||||
player.Control.KeepLow = IsInLowSpace(*item, *coll);
|
player.Control.KeepLow = IsInLowSpace(*item, *coll);
|
||||||
player.Control.IsLow = true;
|
player.Control.IsLow = true;
|
||||||
player.Control.MoveAngle = item->Pose.Orientation.y;
|
player.Control.MoveAngle = item->Pose.Orientation.y;
|
||||||
player.ExtraTorsoRot = EulerAngles::Zero;
|
player.ExtraTorsoRot = EulerAngles::Identity;
|
||||||
coll->Setup.Height = LARA_HEIGHT_CRAWL;
|
coll->Setup.Height = LARA_HEIGHT_CRAWL;
|
||||||
coll->Setup.ForwardAngle = item->Pose.Orientation.y;
|
coll->Setup.ForwardAngle = item->Pose.Orientation.y;
|
||||||
coll->Setup.LowerFloorBound = CRAWL_STEPUP_HEIGHT;
|
coll->Setup.LowerFloorBound = CRAWL_STEPUP_HEIGHT;
|
||||||
|
|
|
@ -74,9 +74,9 @@ WeaponInfo Weapons[(int)LaraWeaponType::NumWeapons] =
|
||||||
{
|
{
|
||||||
// No weapon
|
// No weapon
|
||||||
{
|
{
|
||||||
std::pair(EulerAngles::Zero, EulerAngles::Zero),
|
std::pair(EulerAngles::Identity, EulerAngles::Identity),
|
||||||
std::pair(EulerAngles::Zero, EulerAngles::Zero),
|
std::pair(EulerAngles::Identity, EulerAngles::Identity),
|
||||||
std::pair(EulerAngles::Zero, EulerAngles::Zero),
|
std::pair(EulerAngles::Identity, EulerAngles::Identity),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -110,7 +110,7 @@ WeaponInfo Weapons[(int)LaraWeaponType::NumWeapons] =
|
||||||
{
|
{
|
||||||
std::pair(EulerAngles(ANGLE(-80.0f), ANGLE(-60.0f), 0), EulerAngles(ANGLE(80.0f), ANGLE(60.0f), 0)),
|
std::pair(EulerAngles(ANGLE(-80.0f), ANGLE(-60.0f), 0), EulerAngles(ANGLE(80.0f), ANGLE(60.0f), 0)),
|
||||||
std::pair(EulerAngles(ANGLE(-80.0f), ANGLE(-10.0f), 0), EulerAngles(ANGLE(80.0f), ANGLE(10.0f), 0)),
|
std::pair(EulerAngles(ANGLE(-80.0f), ANGLE(-10.0f), 0), EulerAngles(ANGLE(80.0f), ANGLE(10.0f), 0)),
|
||||||
std::pair(EulerAngles::Zero, EulerAngles::Zero),
|
std::pair(EulerAngles::Identity, EulerAngles::Identity),
|
||||||
ANGLE(10.0f),
|
ANGLE(10.0f),
|
||||||
ANGLE(4.0f),
|
ANGLE(4.0f),
|
||||||
650,
|
650,
|
||||||
|
@ -193,9 +193,9 @@ WeaponInfo Weapons[(int)LaraWeaponType::NumWeapons] =
|
||||||
|
|
||||||
// Flare
|
// Flare
|
||||||
{
|
{
|
||||||
std::pair(EulerAngles::Zero, EulerAngles::Zero),
|
std::pair(EulerAngles::Identity, EulerAngles::Identity),
|
||||||
std::pair(EulerAngles::Zero, EulerAngles::Zero),
|
std::pair(EulerAngles::Identity, EulerAngles::Identity),
|
||||||
std::pair(EulerAngles::Zero, EulerAngles::Zero),
|
std::pair(EulerAngles::Identity, EulerAngles::Identity),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -311,7 +311,7 @@ void InitializeNewWeapon(ItemInfo& laraItem)
|
||||||
player.LeftArm.FrameNumber =
|
player.LeftArm.FrameNumber =
|
||||||
player.RightArm.FrameNumber = 0;
|
player.RightArm.FrameNumber = 0;
|
||||||
player.LeftArm.Orientation =
|
player.LeftArm.Orientation =
|
||||||
player.RightArm.Orientation = EulerAngles::Zero;
|
player.RightArm.Orientation = EulerAngles::Identity;
|
||||||
player.LeftArm.Locked =
|
player.LeftArm.Locked =
|
||||||
player.RightArm.Locked = false;
|
player.RightArm.Locked = false;
|
||||||
player.LeftArm.GunFlash =
|
player.LeftArm.GunFlash =
|
||||||
|
@ -810,7 +810,7 @@ void AimWeapon(ItemInfo& laraItem, ArmInfo& arm, const WeaponInfo& weaponInfo)
|
||||||
{
|
{
|
||||||
const auto& player = *GetLaraInfo(&laraItem);
|
const auto& player = *GetLaraInfo(&laraItem);
|
||||||
|
|
||||||
auto targetArmOrient = arm.Locked ? player.TargetArmOrient : EulerAngles::Zero;
|
auto targetArmOrient = arm.Locked ? player.TargetArmOrient : EulerAngles::Identity;
|
||||||
arm.Orientation.InterpolateConstant(targetArmOrient, weaponInfo.AimSpeed);
|
arm.Orientation.InterpolateConstant(targetArmOrient, weaponInfo.AimSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1037,7 +1037,7 @@ void LaraTargetInfo(ItemInfo& laraItem, const WeaponInfo& weaponInfo)
|
||||||
{
|
{
|
||||||
player.RightArm.Locked = false;
|
player.RightArm.Locked = false;
|
||||||
player.LeftArm.Locked = false;
|
player.LeftArm.Locked = false;
|
||||||
player.TargetArmOrient = EulerAngles::Zero;
|
player.TargetArmOrient = EulerAngles::Identity;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ void ReadyFlare(ItemInfo& laraItem)
|
||||||
|
|
||||||
player.Control.HandStatus = HandStatus::Free;
|
player.Control.HandStatus = HandStatus::Free;
|
||||||
player.LeftArm.Orientation =
|
player.LeftArm.Orientation =
|
||||||
player.RightArm.Orientation = EulerAngles::Zero;
|
player.RightArm.Orientation = EulerAngles::Identity;
|
||||||
player.LeftArm.Locked =
|
player.LeftArm.Locked =
|
||||||
player.RightArm.Locked = false;
|
player.RightArm.Locked = false;
|
||||||
player.TargetEntity = nullptr;
|
player.TargetEntity = nullptr;
|
||||||
|
|
|
@ -32,7 +32,7 @@ void lara_as_monkey_idle(ItemInfo* item, CollisionInfo* coll)
|
||||||
auto& player = GetLaraInfo(*item);
|
auto& player = GetLaraInfo(*item);
|
||||||
|
|
||||||
player.Control.Look.Mode = LookMode::Free;
|
player.Control.Look.Mode = LookMode::Free;
|
||||||
player.ExtraTorsoRot = EulerAngles::Zero;
|
player.ExtraTorsoRot = EulerAngles::Identity;
|
||||||
coll->Setup.EnableObjectPush = false;
|
coll->Setup.EnableObjectPush = false;
|
||||||
coll->Setup.EnableSpasm = false;
|
coll->Setup.EnableSpasm = false;
|
||||||
Camera.targetElevation = -ANGLE(5.0f);
|
Camera.targetElevation = -ANGLE(5.0f);
|
||||||
|
@ -182,7 +182,7 @@ void lara_as_monkey_forward(ItemInfo* item, CollisionInfo* coll)
|
||||||
auto& player = GetLaraInfo(*item);
|
auto& player = GetLaraInfo(*item);
|
||||||
|
|
||||||
player.Control.Look.Mode = LookMode::Horizontal;
|
player.Control.Look.Mode = LookMode::Horizontal;
|
||||||
player.ExtraTorsoRot = EulerAngles::Zero;
|
player.ExtraTorsoRot = EulerAngles::Identity;
|
||||||
coll->Setup.EnableObjectPush = false;
|
coll->Setup.EnableObjectPush = false;
|
||||||
coll->Setup.EnableSpasm = false;
|
coll->Setup.EnableSpasm = false;
|
||||||
Camera.targetElevation = -ANGLE(5.0f);
|
Camera.targetElevation = -ANGLE(5.0f);
|
||||||
|
@ -261,7 +261,7 @@ void lara_as_monkey_back(ItemInfo* item, CollisionInfo* coll)
|
||||||
auto& player = GetLaraInfo(*item);
|
auto& player = GetLaraInfo(*item);
|
||||||
|
|
||||||
player.Control.Look.Mode = LookMode::Horizontal;
|
player.Control.Look.Mode = LookMode::Horizontal;
|
||||||
player.ExtraTorsoRot = EulerAngles::Zero;
|
player.ExtraTorsoRot = EulerAngles::Identity;
|
||||||
coll->Setup.EnableObjectPush = false;
|
coll->Setup.EnableObjectPush = false;
|
||||||
coll->Setup.EnableSpasm = false;
|
coll->Setup.EnableSpasm = false;
|
||||||
Camera.targetElevation = -ANGLE(5.0f);
|
Camera.targetElevation = -ANGLE(5.0f);
|
||||||
|
@ -334,7 +334,7 @@ void lara_as_monkey_shimmy_left(ItemInfo* item, CollisionInfo* coll)
|
||||||
auto& player = GetLaraInfo(*item);
|
auto& player = GetLaraInfo(*item);
|
||||||
|
|
||||||
player.Control.Look.Mode = LookMode::Vertical;
|
player.Control.Look.Mode = LookMode::Vertical;
|
||||||
player.ExtraTorsoRot = EulerAngles::Zero;
|
player.ExtraTorsoRot = EulerAngles::Identity;
|
||||||
coll->Setup.EnableObjectPush = false;
|
coll->Setup.EnableObjectPush = false;
|
||||||
coll->Setup.EnableSpasm = false;
|
coll->Setup.EnableSpasm = false;
|
||||||
Camera.targetElevation = -ANGLE(5.0f);
|
Camera.targetElevation = -ANGLE(5.0f);
|
||||||
|
@ -410,7 +410,7 @@ void lara_as_monkey_shimmy_right(ItemInfo* item, CollisionInfo* coll)
|
||||||
auto& player = GetLaraInfo(*item);
|
auto& player = GetLaraInfo(*item);
|
||||||
|
|
||||||
player.Control.Look.Mode = LookMode::Vertical;
|
player.Control.Look.Mode = LookMode::Vertical;
|
||||||
player.ExtraTorsoRot = EulerAngles::Zero;
|
player.ExtraTorsoRot = EulerAngles::Identity;
|
||||||
coll->Setup.EnableObjectPush = false;
|
coll->Setup.EnableObjectPush = false;
|
||||||
coll->Setup.EnableSpasm = false;
|
coll->Setup.EnableSpasm = false;
|
||||||
Camera.targetElevation = -ANGLE(5.0f);
|
Camera.targetElevation = -ANGLE(5.0f);
|
||||||
|
@ -510,7 +510,7 @@ void lara_as_monkey_turn_left(ItemInfo* item, CollisionInfo* coll)
|
||||||
auto& player = GetLaraInfo(*item);
|
auto& player = GetLaraInfo(*item);
|
||||||
|
|
||||||
player.Control.Look.Mode = LookMode::Vertical;
|
player.Control.Look.Mode = LookMode::Vertical;
|
||||||
player.ExtraTorsoRot = EulerAngles::Zero;
|
player.ExtraTorsoRot = EulerAngles::Identity;
|
||||||
coll->Setup.EnableObjectPush = false;
|
coll->Setup.EnableObjectPush = false;
|
||||||
coll->Setup.EnableSpasm = false;
|
coll->Setup.EnableSpasm = false;
|
||||||
Camera.targetElevation = -ANGLE(5.0f);
|
Camera.targetElevation = -ANGLE(5.0f);
|
||||||
|
@ -600,7 +600,7 @@ void lara_as_monkey_turn_right(ItemInfo* item, CollisionInfo* coll)
|
||||||
auto& player = GetLaraInfo(*item);
|
auto& player = GetLaraInfo(*item);
|
||||||
|
|
||||||
player.Control.Look.Mode = LookMode::Vertical;
|
player.Control.Look.Mode = LookMode::Vertical;
|
||||||
player.ExtraTorsoRot = EulerAngles::Zero;
|
player.ExtraTorsoRot = EulerAngles::Identity;
|
||||||
coll->Setup.EnableObjectPush = false;
|
coll->Setup.EnableObjectPush = false;
|
||||||
coll->Setup.EnableSpasm = false;
|
coll->Setup.EnableSpasm = false;
|
||||||
Camera.targetElevation = -ANGLE(5.0f);
|
Camera.targetElevation = -ANGLE(5.0f);
|
||||||
|
|
|
@ -359,7 +359,7 @@ void ReadyShotgun(ItemInfo& laraItem, LaraWeaponType weaponType)
|
||||||
player.Control.HandStatus = HandStatus::WeaponReady;
|
player.Control.HandStatus = HandStatus::WeaponReady;
|
||||||
player.TargetEntity = nullptr;
|
player.TargetEntity = nullptr;
|
||||||
player.LeftArm.Orientation =
|
player.LeftArm.Orientation =
|
||||||
player.RightArm.Orientation = EulerAngles::Zero;
|
player.RightArm.Orientation = EulerAngles::Identity;
|
||||||
player.LeftArm.FrameNumber =
|
player.LeftArm.FrameNumber =
|
||||||
player.RightArm.FrameNumber = 0;
|
player.RightArm.FrameNumber = 0;
|
||||||
player.LeftArm.Locked =
|
player.LeftArm.Locked =
|
||||||
|
@ -1276,7 +1276,7 @@ void RifleHandler(ItemInfo& laraItem, LaraWeaponType weaponType)
|
||||||
player.ExtraTorsoRot = player.LeftArm.Orientation;
|
player.ExtraTorsoRot = player.LeftArm.Orientation;
|
||||||
|
|
||||||
if (Camera.oldType != CameraType::Look && player.Control.Look.OpticRange == 0)
|
if (Camera.oldType != CameraType::Look && player.Control.Look.OpticRange == 0)
|
||||||
player.ExtraHeadRot = EulerAngles::Zero;
|
player.ExtraHeadRot = EulerAngles::Identity;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (weaponType == LaraWeaponType::Revolver)
|
if (weaponType == LaraWeaponType::Revolver)
|
||||||
|
@ -1459,7 +1459,7 @@ void ExplodeProjectile(ItemInfo& item, const Vector3i& prevPos)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TriggerShockwave(&item.Pose, 48, 304, 96, 128, 96, 0, 24, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&item.Pose, 48, 304, 96, 128, 96, 0, 24, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
item.Pose.Position.y += CLICK(1.0f / 2);
|
item.Pose.Position.y += CLICK(1.0f / 2);
|
||||||
TriggerExplosionSparks(prevPos.x, prevPos.y, prevPos.z, 3, -2, 0, item.RoomNumber);
|
TriggerExplosionSparks(prevPos.x, prevPos.y, prevPos.z, 3, -2, 0, item.RoomNumber);
|
||||||
|
|
||||||
|
@ -1581,7 +1581,7 @@ void HandleProjectile(ItemInfo& projectile, ItemInfo& emitter, const Vector3i& p
|
||||||
|
|
||||||
TriggerExplosionSparks(meshPtr->pos.Position.x, meshPtr->pos.Position.y, meshPtr->pos.Position.z, 3, -2, 0, projectile.RoomNumber);
|
TriggerExplosionSparks(meshPtr->pos.Position.x, meshPtr->pos.Position.y, meshPtr->pos.Position.z, 3, -2, 0, projectile.RoomNumber);
|
||||||
auto pose = Pose(meshPtr->pos.Position.x, meshPtr->pos.Position.y - 128, meshPtr->pos.Position.z, 0, meshPtr->pos.Orientation.y, 0);
|
auto pose = Pose(meshPtr->pos.Position.x, meshPtr->pos.Position.y - 128, meshPtr->pos.Position.z, 0, meshPtr->pos.Orientation.y, 0);
|
||||||
TriggerShockwave(&pose, 40, 176, 64, 0, 96, 128, 16, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&pose, 40, 176, 64, 0, 96, 128, 16, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < MAX_COLLIDED_OBJECTS; i++)
|
for (int i = 0; i < MAX_COLLIDED_OBJECTS; i++)
|
||||||
|
|
|
@ -1126,7 +1126,7 @@ struct ArmInfo
|
||||||
int FrameNumber = 0;
|
int FrameNumber = 0;
|
||||||
int FrameBase = 0;
|
int FrameBase = 0;
|
||||||
|
|
||||||
EulerAngles Orientation = EulerAngles::Zero;
|
EulerAngles Orientation = EulerAngles::Identity;
|
||||||
bool Locked = false;
|
bool Locked = false;
|
||||||
|
|
||||||
int GunFlash = 0;
|
int GunFlash = 0;
|
||||||
|
@ -1180,8 +1180,8 @@ struct LaraCountData
|
||||||
struct LookControlData
|
struct LookControlData
|
||||||
{
|
{
|
||||||
LookMode Mode = LookMode::None;
|
LookMode Mode = LookMode::None;
|
||||||
EulerAngles Orientation = EulerAngles::Zero;
|
EulerAngles Orientation = EulerAngles::Identity;
|
||||||
EulerAngles TurnRate = EulerAngles::Zero;
|
EulerAngles TurnRate = EulerAngles::Identity;
|
||||||
|
|
||||||
short OpticRange = 0;
|
short OpticRange = 0;
|
||||||
bool IsUsingBinoculars = false;
|
bool IsUsingBinoculars = false;
|
||||||
|
@ -1346,9 +1346,9 @@ struct LaraInfo
|
||||||
TorchData Torch = {};
|
TorchData Torch = {};
|
||||||
CarriedWeaponInfo Weapons[(int)LaraWeaponType::NumWeapons] = {}; // TODO: Move to WeaponControlData.
|
CarriedWeaponInfo Weapons[(int)LaraWeaponType::NumWeapons] = {}; // TODO: Move to WeaponControlData.
|
||||||
|
|
||||||
EulerAngles ExtraHeadRot = EulerAngles::Zero;
|
EulerAngles ExtraHeadRot = EulerAngles::Identity;
|
||||||
EulerAngles ExtraTorsoRot = EulerAngles::Zero;
|
EulerAngles ExtraTorsoRot = EulerAngles::Identity;
|
||||||
EulerAngles TargetArmOrient = EulerAngles::Zero;
|
EulerAngles TargetArmOrient = EulerAngles::Identity;
|
||||||
ArmInfo LeftArm = {};
|
ArmInfo LeftArm = {};
|
||||||
ArmInfo RightArm = {};
|
ArmInfo RightArm = {};
|
||||||
|
|
||||||
|
|
|
@ -382,7 +382,7 @@ bool TestLaraHangJumpUp(ItemInfo* item, CollisionInfo* coll)
|
||||||
item->Animation.Velocity.y = 0;
|
item->Animation.Velocity.y = 0;
|
||||||
item->Animation.IsAirborne = false;
|
item->Animation.IsAirborne = false;
|
||||||
lara->Control.HandStatus = HandStatus::Busy;
|
lara->Control.HandStatus = HandStatus::Busy;
|
||||||
lara->ExtraTorsoRot = EulerAngles::Zero;
|
lara->ExtraTorsoRot = EulerAngles::Identity;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,7 @@ static void ReadyPistols(ItemInfo& laraItem, LaraWeaponType weaponType)
|
||||||
player.LeftArm.FrameNumber =
|
player.LeftArm.FrameNumber =
|
||||||
player.RightArm.FrameNumber = 0;
|
player.RightArm.FrameNumber = 0;
|
||||||
player.LeftArm.Orientation =
|
player.LeftArm.Orientation =
|
||||||
player.RightArm.Orientation = EulerAngles::Zero;
|
player.RightArm.Orientation = EulerAngles::Identity;
|
||||||
player.LeftArm.Locked =
|
player.LeftArm.Locked =
|
||||||
player.RightArm.Locked = false;
|
player.RightArm.Locked = false;
|
||||||
}
|
}
|
||||||
|
@ -254,7 +254,7 @@ static int AnimateWeaponUndraw(ItemInfo& laraItem, LaraWeaponType weaponType, bo
|
||||||
}
|
}
|
||||||
else if (frame == 0)
|
else if (frame == 0)
|
||||||
{
|
{
|
||||||
arm.Orientation = EulerAngles::Zero;
|
arm.Orientation = EulerAngles::Identity;
|
||||||
frame = weaponAnimData.RecoilAnim - 1;
|
frame = weaponAnimData.RecoilAnim - 1;
|
||||||
}
|
}
|
||||||
else if (frame > weaponAnimData.Draw1Anim && frame < weaponAnimData.RecoilAnim)
|
else if (frame > weaponAnimData.Draw1Anim && frame < weaponAnimData.RecoilAnim)
|
||||||
|
|
|
@ -83,13 +83,13 @@ struct AnimFrameInterpData
|
||||||
struct BoneMutator
|
struct BoneMutator
|
||||||
{
|
{
|
||||||
Vector3 Offset = Vector3::Zero;
|
Vector3 Offset = Vector3::Zero;
|
||||||
EulerAngles Rotation = EulerAngles::Zero;
|
EulerAngles Rotation = EulerAngles::Identity;
|
||||||
Vector3 Scale = Vector3::One;
|
Vector3 Scale = Vector3::One;
|
||||||
|
|
||||||
bool IsEmpty() const
|
bool IsEmpty() const
|
||||||
{
|
{
|
||||||
return (Offset == Vector3::Zero &&
|
return (Offset == Vector3::Zero &&
|
||||||
Rotation == EulerAngles::Zero &&
|
Rotation == EulerAngles::Identity &&
|
||||||
Scale == Vector3::One);
|
Scale == Vector3::One);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1402,9 +1402,9 @@ namespace TEN::Gui
|
||||||
if (Rings[(int)RingTypes::Ammo].RingActive)
|
if (Rings[(int)RingTypes::Ammo].RingActive)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
AmmoObjectList[0].Orientation = EulerAngles::Zero;
|
AmmoObjectList[0].Orientation = EulerAngles::Identity;
|
||||||
AmmoObjectList[1].Orientation = EulerAngles::Zero;
|
AmmoObjectList[1].Orientation = EulerAngles::Identity;
|
||||||
AmmoObjectList[2].Orientation = EulerAngles::Zero;
|
AmmoObjectList[2].Orientation = EulerAngles::Identity;
|
||||||
|
|
||||||
if (options &
|
if (options &
|
||||||
(OPT_CHOOSE_AMMO_UZI | OPT_CHOOSE_AMMO_PISTOLS | OPT_CHOOSE_AMMO_REVOLVER | OPT_CHOOSE_AMMO_CROSSBOW |
|
(OPT_CHOOSE_AMMO_UZI | OPT_CHOOSE_AMMO_PISTOLS | OPT_CHOOSE_AMMO_REVOLVER | OPT_CHOOSE_AMMO_CROSSBOW |
|
||||||
|
@ -1520,7 +1520,7 @@ namespace TEN::Gui
|
||||||
void GuiController::InsertObjectIntoList(int objectNumber)
|
void GuiController::InsertObjectIntoList(int objectNumber)
|
||||||
{
|
{
|
||||||
Rings[(int)RingTypes::Inventory].CurrentObjectList[Rings[(int)RingTypes::Inventory].NumObjectsInList].InventoryItem = objectNumber;
|
Rings[(int)RingTypes::Inventory].CurrentObjectList[Rings[(int)RingTypes::Inventory].NumObjectsInList].InventoryItem = objectNumber;
|
||||||
Rings[(int)RingTypes::Inventory].CurrentObjectList[Rings[(int)RingTypes::Inventory].NumObjectsInList].Orientation = EulerAngles::Zero;
|
Rings[(int)RingTypes::Inventory].CurrentObjectList[Rings[(int)RingTypes::Inventory].NumObjectsInList].Orientation = EulerAngles::Identity;
|
||||||
Rings[(int)RingTypes::Inventory].CurrentObjectList[Rings[(int)RingTypes::Inventory].NumObjectsInList].Bright = 32;
|
Rings[(int)RingTypes::Inventory].CurrentObjectList[Rings[(int)RingTypes::Inventory].NumObjectsInList].Bright = 32;
|
||||||
Rings[(int)RingTypes::Inventory].NumObjectsInList++;
|
Rings[(int)RingTypes::Inventory].NumObjectsInList++;
|
||||||
}
|
}
|
||||||
|
@ -1534,7 +1534,7 @@ namespace TEN::Gui
|
||||||
if (Rings[(int)RingTypes::Inventory].CurrentObjectList[Rings[(int)RingTypes::Inventory].CurrentObjectInList].InventoryItem != objectNumber)
|
if (Rings[(int)RingTypes::Inventory].CurrentObjectList[Rings[(int)RingTypes::Inventory].CurrentObjectInList].InventoryItem != objectNumber)
|
||||||
{
|
{
|
||||||
Rings[(int)RingTypes::Ammo].CurrentObjectList[Rings[(int)RingTypes::Ammo].NumObjectsInList].InventoryItem = objectNumber;
|
Rings[(int)RingTypes::Ammo].CurrentObjectList[Rings[(int)RingTypes::Ammo].NumObjectsInList].InventoryItem = objectNumber;
|
||||||
Rings[(int)RingTypes::Ammo].CurrentObjectList[Rings[(int)RingTypes::Ammo].NumObjectsInList].Orientation = EulerAngles::Zero;
|
Rings[(int)RingTypes::Ammo].CurrentObjectList[Rings[(int)RingTypes::Ammo].NumObjectsInList].Orientation = EulerAngles::Identity;
|
||||||
Rings[(int)RingTypes::Ammo].CurrentObjectList[Rings[(int)RingTypes::Ammo].NumObjectsInList++].Bright = 32;
|
Rings[(int)RingTypes::Ammo].CurrentObjectList[Rings[(int)RingTypes::Ammo].NumObjectsInList++].Bright = 32;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2737,7 +2737,7 @@ namespace TEN::Gui
|
||||||
|
|
||||||
void GuiController::SpinBack(EulerAngles& orient)
|
void GuiController::SpinBack(EulerAngles& orient)
|
||||||
{
|
{
|
||||||
orient.Lerp(EulerAngles::Zero, 1.0f / 8);
|
orient.Lerp(EulerAngles::Identity, 1.0f / 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiController::DrawAmmoSelector()
|
void GuiController::DrawAmmoSelector()
|
||||||
|
@ -3440,7 +3440,7 @@ namespace TEN::Gui
|
||||||
|
|
||||||
// HACK: Needle is rotated in the draw function.
|
// HACK: Needle is rotated in the draw function.
|
||||||
const auto& invObject = InventoryObjectTable[INV_OBJECT_COMPASS];
|
const auto& invObject = InventoryObjectTable[INV_OBJECT_COMPASS];
|
||||||
g_Renderer.DrawObjectIn2DSpace(ID_COMPASS_ITEM, POS_2D, EulerAngles::Zero, invObject.Scale1 * 1.5f);
|
g_Renderer.DrawObjectIn2DSpace(ID_COMPASS_ITEM, POS_2D, EulerAngles::Identity, invObject.Scale1 * 1.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiController::DoDiary(ItemInfo* item)
|
void GuiController::DoDiary(ItemInfo* item)
|
||||||
|
|
|
@ -93,7 +93,7 @@ namespace TEN::Gui
|
||||||
struct ObjectList
|
struct ObjectList
|
||||||
{
|
{
|
||||||
int InventoryItem = 0;
|
int InventoryItem = 0;
|
||||||
EulerAngles Orientation = EulerAngles::Zero;
|
EulerAngles Orientation = EulerAngles::Identity;
|
||||||
unsigned short Bright;
|
unsigned short Bright;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -190,7 +190,7 @@ namespace TEN::Math::Geometry
|
||||||
EulerAngles GetOrientToPoint(const Vector3& origin, const Vector3& target)
|
EulerAngles GetOrientToPoint(const Vector3& origin, const Vector3& target)
|
||||||
{
|
{
|
||||||
if (origin == target)
|
if (origin == target)
|
||||||
return EulerAngles::Zero;
|
return EulerAngles::Identity;
|
||||||
|
|
||||||
return EulerAngles(target - origin);
|
return EulerAngles(target - origin);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,8 @@ using namespace TEN::Math;
|
||||||
auto normalizedAxis = axis;
|
auto normalizedAxis = axis;
|
||||||
normalizedAxis.Normalize();
|
normalizedAxis.Normalize();
|
||||||
|
|
||||||
Axis = normalizedAxis;
|
_axis = normalizedAxis;
|
||||||
Angle = angle;
|
_angle = angle;
|
||||||
}
|
}
|
||||||
|
|
||||||
AxisAngle::AxisAngle(const EulerAngles& eulers)
|
AxisAngle::AxisAngle(const EulerAngles& eulers)
|
||||||
|
@ -34,8 +34,8 @@ using namespace TEN::Math;
|
||||||
axis.Normalize();
|
axis.Normalize();
|
||||||
float angle = 2.0f * acos(quat.w);
|
float angle = 2.0f * acos(quat.w);
|
||||||
|
|
||||||
Axis = axis;
|
_axis = axis;
|
||||||
Angle = FROM_RAD(angle);
|
_angle = FROM_RAD(angle);
|
||||||
}
|
}
|
||||||
|
|
||||||
AxisAngle::AxisAngle(const Matrix& rotMatrix)
|
AxisAngle::AxisAngle(const Matrix& rotMatrix)
|
||||||
|
@ -54,23 +54,23 @@ using namespace TEN::Math;
|
||||||
auto rotAxis = Vector3::TransformNormal(Vector3::Right, rotMatrix);
|
auto rotAxis = Vector3::TransformNormal(Vector3::Right, rotMatrix);
|
||||||
|
|
||||||
// Check if rotation axis and unit axis are pointing in opposite directions.
|
// Check if rotation axis and unit axis are pointing in opposite directions.
|
||||||
float dot = rotAxis.Dot(Axis);
|
float dot = rotAxis.Dot(_axis);
|
||||||
if (dot < 0.0f)
|
if (dot < 0.0f)
|
||||||
{
|
{
|
||||||
// Negate angle and unit axis to ensure the angle stays within [0, PI] range.
|
// Negate angle and unit axis to ensure angle stays within [0, PI] range.
|
||||||
Angle = -Angle;
|
_angle = -_angle;
|
||||||
Axis = -Axis;
|
_axis = -_axis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3 AxisAngle::GetAxis() const
|
Vector3 AxisAngle::GetAxis() const
|
||||||
{
|
{
|
||||||
return Axis;
|
return _axis;
|
||||||
}
|
}
|
||||||
|
|
||||||
short AxisAngle::GetAngle() const
|
short AxisAngle::GetAngle() const
|
||||||
{
|
{
|
||||||
return Angle;
|
return _angle;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AxisAngle::SetAxis(const Vector3& axis)
|
void AxisAngle::SetAxis(const Vector3& axis)
|
||||||
|
@ -78,12 +78,12 @@ using namespace TEN::Math;
|
||||||
auto normalizedAxis = axis;
|
auto normalizedAxis = axis;
|
||||||
normalizedAxis.Normalize();
|
normalizedAxis.Normalize();
|
||||||
|
|
||||||
Axis = normalizedAxis;
|
_axis = normalizedAxis;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AxisAngle::SetAngle(short angle)
|
void AxisAngle::SetAngle(short angle)
|
||||||
{
|
{
|
||||||
Angle = angle;
|
_angle = angle;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AxisAngle::Slerp(const AxisAngle& axisAngleTo, float alpha)
|
void AxisAngle::Slerp(const AxisAngle& axisAngleTo, float alpha)
|
||||||
|
@ -118,7 +118,7 @@ using namespace TEN::Math;
|
||||||
Vector3 AxisAngle::ToDirection() const
|
Vector3 AxisAngle::ToDirection() const
|
||||||
{
|
{
|
||||||
// TODO: Works, but need to find a way without EulerAngles. -- Sezz 2023.03.08
|
// TODO: Works, but need to find a way without EulerAngles. -- Sezz 2023.03.08
|
||||||
auto refDir = Geometry::RotatePoint(Vector3::Right, EulerAngles(Axis));
|
auto refDir = Geometry::RotatePoint(Vector3::Right, EulerAngles(_axis));
|
||||||
return Geometry::RotatePoint(refDir, *this);
|
return Geometry::RotatePoint(refDir, *this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,17 +129,17 @@ using namespace TEN::Math;
|
||||||
|
|
||||||
Quaternion AxisAngle::ToQuaternion() const
|
Quaternion AxisAngle::ToQuaternion() const
|
||||||
{
|
{
|
||||||
return Quaternion::CreateFromAxisAngle(Axis, TO_RAD(Angle));
|
return Quaternion::CreateFromAxisAngle(_axis, TO_RAD(_angle));
|
||||||
}
|
}
|
||||||
|
|
||||||
Matrix AxisAngle::ToRotationMatrix() const
|
Matrix AxisAngle::ToRotationMatrix() const
|
||||||
{
|
{
|
||||||
return Matrix::CreateFromAxisAngle(Axis, TO_RAD(Angle));
|
return Matrix::CreateFromAxisAngle(_axis, TO_RAD(_angle));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AxisAngle::operator ==(const AxisAngle& axisAngle) const
|
bool AxisAngle::operator ==(const AxisAngle& axisAngle) const
|
||||||
{
|
{
|
||||||
return ((Axis == axisAngle.GetAxis()) && (Angle == axisAngle.GetAngle()));
|
return ((_axis == axisAngle.GetAxis()) && (_angle == axisAngle.GetAngle()));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AxisAngle::operator !=(const AxisAngle& axisAngle) const
|
bool AxisAngle::operator !=(const AxisAngle& axisAngle) const
|
||||||
|
@ -149,8 +149,8 @@ using namespace TEN::Math;
|
||||||
|
|
||||||
AxisAngle& AxisAngle::operator =(const AxisAngle& axisAngle)
|
AxisAngle& AxisAngle::operator =(const AxisAngle& axisAngle)
|
||||||
{
|
{
|
||||||
Axis = axisAngle.GetAxis();
|
_axis = axisAngle.GetAxis();
|
||||||
Angle = axisAngle.GetAngle();
|
_angle = axisAngle.GetAngle();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,8 +8,8 @@ class EulerAngles;
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
// Members
|
// Members
|
||||||
Vector3 Axis = Vector3::Backward;
|
Vector3 _axis = Vector3::Backward;
|
||||||
short Angle = 0;
|
short _angle = 0;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constants
|
// Constants
|
||||||
|
|
|
@ -10,7 +10,7 @@ using namespace TEN::Math;
|
||||||
|
|
||||||
//namespace TEN::Math
|
//namespace TEN::Math
|
||||||
//{
|
//{
|
||||||
const EulerAngles EulerAngles::Zero = EulerAngles(0, 0, 0);
|
const EulerAngles EulerAngles::Identity = EulerAngles(0, 0, 0);
|
||||||
|
|
||||||
EulerAngles::EulerAngles(const Vector3& dir)
|
EulerAngles::EulerAngles(const Vector3& dir)
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
short z = 0;
|
short z = 0;
|
||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
static const EulerAngles Zero; // TODO: Should be "Identity", not "Zero".
|
static const EulerAngles Identity;
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
constexpr EulerAngles() {};
|
constexpr EulerAngles() {};
|
||||||
|
|
|
@ -9,7 +9,7 @@ using namespace TEN::Math;
|
||||||
|
|
||||||
//namespace TEN::Math
|
//namespace TEN::Math
|
||||||
//{
|
//{
|
||||||
const Pose Pose::Zero = Pose(Vector3i::Zero, EulerAngles::Zero);
|
const Pose Pose::Zero = Pose(Vector3i::Zero, EulerAngles::Identity);
|
||||||
|
|
||||||
Pose::Pose()
|
Pose::Pose()
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
public:
|
public:
|
||||||
// Members
|
// Members
|
||||||
Vector3i Position = Vector3i::Zero;
|
Vector3i Position = Vector3i::Zero;
|
||||||
EulerAngles Orientation = EulerAngles::Zero;
|
EulerAngles Orientation = EulerAngles::Identity;
|
||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
static const Pose Zero;
|
static const Pose Zero;
|
||||||
|
|
|
@ -247,29 +247,29 @@ namespace TEN::Entities::Effects
|
||||||
|
|
||||||
case MissileType::Demigod3Single:
|
case MissileType::Demigod3Single:
|
||||||
case MissileType::Demigod3Radial:
|
case MissileType::Demigod3Radial:
|
||||||
TriggerShockwave(&fx.pos, 32, 160, 64, 0, 96, 128, 16, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 32, 160, 64, 0, 96, 128, 16, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
BubblesShatterFunction(&fx, 0, -32);
|
BubblesShatterFunction(&fx, 0, -32);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MissileType::Demigod2:
|
case MissileType::Demigod2:
|
||||||
TriggerShockwave(&fx.pos, 32, 160, 64, 128, 64, 0, 16, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 32, 160, 64, 128, 64, 0, 16, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
BubblesShatterFunction(&fx, 0, -32);
|
BubblesShatterFunction(&fx, 0, -32);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MissileType::Harpy:
|
case MissileType::Harpy:
|
||||||
TriggerShockwave(&fx.pos, 32, 160, 64, 128, 128, 0, 16, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 32, 160, 64, 128, 128, 0, 16, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
BubblesShatterFunction(&fx, 0, -32);
|
BubblesShatterFunction(&fx, 0, -32);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MissileType::CrocgodMutant:
|
case MissileType::CrocgodMutant:
|
||||||
TriggerExplosionSparks(prevPos.x, prevPos.y, prevPos.z, 3, -2, 0, fx.roomNumber);
|
TriggerExplosionSparks(prevPos.x, prevPos.y, prevPos.z, 3, -2, 0, fx.roomNumber);
|
||||||
TriggerShockwave(&fx.pos, 48, 240, 64, 128, 96, 0, 24, EulerAngles::Zero, 15, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 48, 240, 64, 128, 96, 0, 24, EulerAngles::Identity, 15, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
|
|
||||||
fx.pos.Position.y -= 128;
|
fx.pos.Position.y -= 128;
|
||||||
TriggerShockwave(&fx.pos, 48, 240, 48, 128, 112, 0, 16, EulerAngles::Zero, 15, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 48, 240, 48, 128, 112, 0, 16, EulerAngles::Identity, 15, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
|
|
||||||
fx.pos.Position.y += 256;
|
fx.pos.Position.y += 256;
|
||||||
TriggerShockwave(&fx.pos, 48, 240, 48, 128, 112, 0, 16, EulerAngles::Zero, 15, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 48, 240, 48, 128, 112, 0, 16, EulerAngles::Identity, 15, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MissileType::ClawMutantPlasma:
|
case MissileType::ClawMutantPlasma:
|
||||||
|
@ -283,7 +283,7 @@ namespace TEN::Entities::Effects
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
TriggerShockwave(&fx.pos, 32, 160, 64, 0, 128, 64, 16, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 32, 160, 64, 0, 128, 64, 16, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
BubblesShatterFunction(&fx, 0, -32);
|
BubblesShatterFunction(&fx, 0, -32);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -298,7 +298,7 @@ namespace TEN::Entities::Effects
|
||||||
switch ((MissileType)fx.flag1)
|
switch ((MissileType)fx.flag1)
|
||||||
{
|
{
|
||||||
case MissileType::SethLarge:
|
case MissileType::SethLarge:
|
||||||
TriggerShockwave(&fx.pos, 48, 240, 64, 0, 128, 64, 24, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 48, 240, 64, 0, 128, 64, 24, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
TriggerExplosionSparks(prevPos.x, prevPos.y, prevPos.z, 3, -2, 2, fx.roomNumber);
|
TriggerExplosionSparks(prevPos.x, prevPos.y, prevPos.z, 3, -2, 2, fx.roomNumber);
|
||||||
ItemCustomBurn(LaraItem, Vector3(0.0f, 0.8f, 0.1f), Vector3(0.0f, 0.9f, 0.8f));
|
ItemCustomBurn(LaraItem, Vector3(0.0f, 0.8f, 0.1f), Vector3(0.0f, 0.9f, 0.8f));
|
||||||
break;
|
break;
|
||||||
|
@ -315,12 +315,12 @@ namespace TEN::Entities::Effects
|
||||||
|
|
||||||
case MissileType::Demigod3Single:
|
case MissileType::Demigod3Single:
|
||||||
case MissileType::Demigod3Radial:
|
case MissileType::Demigod3Radial:
|
||||||
TriggerShockwave(&fx.pos, 32, 160, 64, 0, 96, 128, 16, EulerAngles::Zero, 10, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 32, 160, 64, 0, 96, 128, 16, EulerAngles::Identity, 10, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
BubblesShatterFunction(&fx, 0, -32);
|
BubblesShatterFunction(&fx, 0, -32);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MissileType::Demigod2:
|
case MissileType::Demigod2:
|
||||||
TriggerShockwave(&fx.pos, 32, 160, 64, 128, 64, 0, 16, EulerAngles::Zero, 5, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 32, 160, 64, 128, 64, 0, 16, EulerAngles::Identity, 5, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
BubblesShatterFunction(&fx, 0, -32);
|
BubblesShatterFunction(&fx, 0, -32);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -336,24 +336,24 @@ namespace TEN::Entities::Effects
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MissileType::Harpy:
|
case MissileType::Harpy:
|
||||||
TriggerShockwave(&fx.pos, 32, 160, 64, 128, 128, 0, 16, EulerAngles::Zero, 3, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 32, 160, 64, 128, 128, 0, 16, EulerAngles::Identity, 3, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
BubblesShatterFunction(&fx, 0, -32);
|
BubblesShatterFunction(&fx, 0, -32);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MissileType::CrocgodMutant:
|
case MissileType::CrocgodMutant:
|
||||||
TriggerExplosionSparks(prevPos.x, prevPos.y, prevPos.z, 3, -2, 0, fx.roomNumber);
|
TriggerExplosionSparks(prevPos.x, prevPos.y, prevPos.z, 3, -2, 0, fx.roomNumber);
|
||||||
TriggerShockwave(&fx.pos, 48, 240, 64, 128, 96, 0, 24, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 48, 240, 64, 128, 96, 0, 24, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
|
|
||||||
fx.pos.Position.y -= 128;
|
fx.pos.Position.y -= 128;
|
||||||
TriggerShockwave(&fx.pos, 48, 240, 48, 128, 112, 0, 16, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 48, 240, 48, 128, 112, 0, 16, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
|
|
||||||
fx.pos.Position.y += 256;
|
fx.pos.Position.y += 256;
|
||||||
TriggerShockwave(&fx.pos, 48, 240, 48, 128, 112, 0, 16, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 48, 240, 48, 128, 112, 0, 16, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
ItemBurn(LaraItem);
|
ItemBurn(LaraItem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
TriggerShockwave(&fx.pos, 24, 88, 48, 0, 128, 64, 16, EulerAngles::Zero, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx.pos, 24, 88, 48, 0, 128, 64, 16, EulerAngles::Identity, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ namespace TEN::Entities::Generic
|
||||||
|
|
||||||
// Set mutators to EulerAngles identity by default.
|
// Set mutators to EulerAngles identity by default.
|
||||||
for (auto& mutator : item.Model.Mutators)
|
for (auto& mutator : item.Model.Mutators)
|
||||||
mutator.Rotation = EulerAngles::Zero;
|
mutator.Rotation = EulerAngles::Identity;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FallingBlockCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll)
|
void FallingBlockCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll)
|
||||||
|
|
|
@ -69,8 +69,8 @@ namespace TEN::Entities::Creatures::TR1
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature.MuzzleFlash[0].Delay != 0)
|
if (creature.MuzzleFlash[0].Delay != 0)
|
||||||
creature.MuzzleFlash[0].Delay--;
|
creature.MuzzleFlash[0].Delay--;
|
||||||
|
|
|
@ -66,8 +66,8 @@ namespace TEN::Entities::Creatures::TR1
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature.MuzzleFlash[0].Delay != 0)
|
if (creature.MuzzleFlash[0].Delay != 0)
|
||||||
creature.MuzzleFlash[0].Delay--;
|
creature.MuzzleFlash[0].Delay--;
|
||||||
|
|
|
@ -121,8 +121,8 @@ namespace TEN::Entities::Creatures::TR1
|
||||||
auto& creature = *GetCreatureInfo(&item);
|
auto& creature = *GetCreatureInfo(&item);
|
||||||
auto& skateItem = g_Level.Items[item.ItemFlags[0]];
|
auto& skateItem = g_Level.Items[item.ItemFlags[0]];
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (skateItem.Status & ITEM_INVISIBLE)
|
if (skateItem.Status & ITEM_INVISIBLE)
|
||||||
{
|
{
|
||||||
|
|
|
@ -88,7 +88,7 @@ namespace TEN::Entities::Creatures::TR1
|
||||||
auto& creature = *GetCreatureInfo(&item);
|
auto& creature = *GetCreatureInfo(&item);
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item.HitPoints <= 0)
|
if (item.HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,8 +59,8 @@ namespace TEN::Entities::Creatures::TR1
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
AI_INFO ai;
|
AI_INFO ai;
|
||||||
int timer = creature->Flags & NATLA_TIMER;
|
int timer = creature->Flags & NATLA_TIMER;
|
||||||
|
|
|
@ -112,7 +112,7 @@ namespace TEN::Entities::Creatures::TR1
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item.HitPoints <= 0)
|
if (item.HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -111,7 +111,7 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
explosionItem->Pose.Position.y = item->Pose.Position.y + CLICK(1);
|
explosionItem->Pose.Position.y = item->Pose.Position.y + CLICK(1);
|
||||||
explosionItem->Pose.Position.z = item->Pose.Position.z;
|
explosionItem->Pose.Position.z = item->Pose.Position.z;
|
||||||
explosionItem->RoomNumber = item->RoomNumber;
|
explosionItem->RoomNumber = item->RoomNumber;
|
||||||
explosionItem->Pose.Orientation = EulerAngles::Zero;
|
explosionItem->Pose.Orientation = EulerAngles::Identity;
|
||||||
explosionItem->Animation.Velocity.y = 0.0f;
|
explosionItem->Animation.Velocity.y = 0.0f;
|
||||||
explosionItem->Animation.Velocity.z = 0.0f;
|
explosionItem->Animation.Velocity.z = 0.0f;
|
||||||
|
|
||||||
|
|
|
@ -38,8 +38,8 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature->MuzzleFlash[0].Delay != 0)
|
if (creature->MuzzleFlash[0].Delay != 0)
|
||||||
creature->MuzzleFlash[0].Delay--;
|
creature->MuzzleFlash[0].Delay--;
|
||||||
|
@ -252,8 +252,8 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature->MuzzleFlash[0].Delay != 0)
|
if (creature->MuzzleFlash[0].Delay != 0)
|
||||||
creature->MuzzleFlash[0].Delay--;
|
creature->MuzzleFlash[0].Delay--;
|
||||||
|
|
|
@ -84,8 +84,8 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature->MuzzleFlash[0].Delay != 0)
|
if (creature->MuzzleFlash[0].Delay != 0)
|
||||||
creature->MuzzleFlash[0].Delay--;
|
creature->MuzzleFlash[0].Delay--;
|
||||||
|
|
|
@ -217,8 +217,8 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
auto* creature = GetCreatureInfo(item);
|
auto* creature = GetCreatureInfo(item);
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
bool isPlayerAlive = ((creature->Enemy != nullptr) && creature->Enemy->IsLara() && (creature->Enemy->HitPoints > 0));
|
bool isPlayerAlive = ((creature->Enemy != nullptr) && creature->Enemy->IsLara() && (creature->Enemy->HitPoints > 0));
|
||||||
|
|
||||||
|
|
|
@ -37,8 +37,8 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature->MuzzleFlash[0].Delay != 0)
|
if (creature->MuzzleFlash[0].Delay != 0)
|
||||||
creature->MuzzleFlash[0].Delay--;
|
creature->MuzzleFlash[0].Delay--;
|
||||||
|
|
|
@ -67,8 +67,8 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
auto pos = GetJointPosition(item, WorkerFlamethrowerBite.BoneID, WorkerFlamethrowerBite.Position);
|
auto pos = GetJointPosition(item, WorkerFlamethrowerBite.BoneID, WorkerFlamethrowerBite.Position);
|
||||||
|
|
||||||
|
|
|
@ -54,8 +54,8 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature->MuzzleFlash[0].Delay != 0)
|
if (creature->MuzzleFlash[0].Delay != 0)
|
||||||
creature->MuzzleFlash[0].Delay--;
|
creature->MuzzleFlash[0].Delay--;
|
||||||
|
|
|
@ -54,8 +54,8 @@ namespace TEN::Entities::Creatures::TR2
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature->MuzzleFlash[0].Delay != 0)
|
if (creature->MuzzleFlash[0].Delay != 0)
|
||||||
creature->MuzzleFlash[0].Delay--;
|
creature->MuzzleFlash[0].Delay--;
|
||||||
|
|
|
@ -92,7 +92,7 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto headOrient = EulerAngles::Zero;
|
auto headOrient = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item.HitPoints <= 0)
|
if (item.HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -308,7 +308,7 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
static auto targetPos = Vector3i::Zero;
|
static auto targetPos = Vector3i::Zero;
|
||||||
|
|
||||||
auto headOrient = EulerAngles::Zero;
|
auto headOrient = EulerAngles::Identity;
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short prevYOrient = 0;
|
short prevYOrient = 0;
|
||||||
|
|
||||||
|
|
|
@ -277,8 +277,8 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item->HitPoints <= 0)
|
if (item->HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
@ -495,8 +495,8 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
case SHIVA_STATE_KILL:
|
case SHIVA_STATE_KILL:
|
||||||
creature.MaxTurn = 0;
|
creature.MaxTurn = 0;
|
||||||
extraHeadRot = EulerAngles::Zero;
|
extraHeadRot = EulerAngles::Identity;
|
||||||
extraTorsoRot = EulerAngles::Zero;
|
extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item->Animation.FrameNumber == GetFrameIndex(item, 10) ||
|
if (item->Animation.FrameNumber == GetFrameIndex(item, 10) ||
|
||||||
item->Animation.FrameNumber == GetFrameIndex(item, 21) ||
|
item->Animation.FrameNumber == GetFrameIndex(item, 21) ||
|
||||||
|
|
|
@ -179,8 +179,8 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
int targetAngle = 0;
|
int targetAngle = 0;
|
||||||
int targetDistance = 0;
|
int targetDistance = 0;
|
||||||
auto jointHeadRot = EulerAngles::Zero;
|
auto jointHeadRot = EulerAngles::Identity;
|
||||||
auto jointTorsoRot = EulerAngles::Zero;
|
auto jointTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item.BoxNumber != NO_BOX && (g_Level.Boxes[item.BoxNumber].flags & BLOCKED) && item.HitPoints > 0)
|
if (item.BoxNumber != NO_BOX && (g_Level.Boxes[item.BoxNumber].flags & BLOCKED) && item.HitPoints > 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -301,8 +301,8 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
auto& creature = *GetCreatureInfo(&item);
|
auto& creature = *GetCreatureInfo(&item);
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item.HitPoints <= 0)
|
if (item.HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,8 +61,8 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
short angle = 0;
|
short angle = 0;
|
||||||
short tilt = 0;
|
short tilt = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
auto pos = GetJointPosition(item, FlamethrowerBite);
|
auto pos = GetJointPosition(item, FlamethrowerBite);
|
||||||
int randomInt = GetRandomControl();
|
int randomInt = GetRandomControl();
|
||||||
|
|
|
@ -103,8 +103,8 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
short angle = 0;
|
short angle = 0;
|
||||||
short tilt = 0;
|
short tilt = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item->HitPoints <= 0)
|
if (item->HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -65,7 +65,7 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
short angle = 0;
|
short angle = 0;
|
||||||
short tilt = 0;
|
short tilt = 0;
|
||||||
short head = 0;
|
short head = 0;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (creature->MuzzleFlash[0].Delay != 0)
|
if (creature->MuzzleFlash[0].Delay != 0)
|
||||||
creature->MuzzleFlash[0].Delay--;
|
creature->MuzzleFlash[0].Delay--;
|
||||||
|
|
|
@ -75,7 +75,7 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
short angle = 0;
|
short angle = 0;
|
||||||
short tilt = 0;
|
short tilt = 0;
|
||||||
short head = 0;
|
short head = 0;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item->BoxNumber != NO_BOX && (g_Level.Boxes[item->BoxNumber].flags & BLOCKED))
|
if (item->BoxNumber != NO_BOX && (g_Level.Boxes[item->BoxNumber].flags & BLOCKED))
|
||||||
{
|
{
|
||||||
|
|
|
@ -79,7 +79,7 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short tiltAngle = 0;
|
short tiltAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item->HitPoints <= 0)
|
if (item->HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -405,8 +405,8 @@ namespace TEN::Entities::Creatures::TR3
|
||||||
|
|
||||||
short angle = 0;
|
short angle = 0;
|
||||||
short tilt = 0;
|
short tilt = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item->HitPoints <= 0)
|
if (item->HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,9 +4,9 @@ namespace TEN::Entities::Vehicles
|
||||||
{
|
{
|
||||||
struct BigGunInfo
|
struct BigGunInfo
|
||||||
{
|
{
|
||||||
EulerAngles BaseOrientation = EulerAngles::Zero;
|
EulerAngles BaseOrientation = EulerAngles::Identity;
|
||||||
EulerAngles TurnRate = EulerAngles::Zero;
|
EulerAngles TurnRate = EulerAngles::Identity;
|
||||||
EulerAngles Rotation = EulerAngles::Zero;
|
EulerAngles Rotation = EulerAngles::Identity;
|
||||||
short BarrelRotation = 0;
|
short BarrelRotation = 0;
|
||||||
int XOrientFrame = 0;
|
int XOrientFrame = 0;
|
||||||
|
|
||||||
|
|
|
@ -171,7 +171,7 @@ namespace TEN::Entities::TR4
|
||||||
short inner = vel >= 0 ? 32 : 640;
|
short inner = vel >= 0 ? 32 : 640;
|
||||||
short outer = vel >= 0 ? 160 : 512;
|
short outer = vel >= 0 ? 160 : 512;
|
||||||
|
|
||||||
TriggerShockwave(&item.Pose, inner, outer, vel, byteColor.x, byteColor.y, byteColor.z, 24, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&item.Pose, inner, outer, vel, byteColor.x, byteColor.y, byteColor.z, 24, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
TriggerShockwave(&item.Pose, inner, outer, vel, byteColor.x, byteColor.y, byteColor.z, 24, EulerAngles(ANGLE(45.0f), 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&item.Pose, inner, outer, vel, byteColor.x, byteColor.y, byteColor.z, 24, EulerAngles(ANGLE(45.0f), 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
TriggerShockwave(&item.Pose, inner, outer, vel, byteColor.x, byteColor.y, byteColor.z, 24, EulerAngles(ANGLE(90.0f), 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&item.Pose, inner, outer, vel, byteColor.x, byteColor.y, byteColor.z, 24, EulerAngles(ANGLE(90.0f), 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
TriggerShockwave(&item.Pose, inner, outer, vel, byteColor.x, byteColor.y, byteColor.z, 24, EulerAngles(ANGLE(135.0f), 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&item.Pose, inner, outer, vel, byteColor.x, byteColor.y, byteColor.z, 24, EulerAngles(ANGLE(135.0f), 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
|
|
|
@ -130,7 +130,7 @@ namespace TEN::Entities::TR4
|
||||||
auto* creature = GetCreatureInfo(item);
|
auto* creature = GetCreatureInfo(item);
|
||||||
|
|
||||||
short angle = 0;
|
short angle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
|
|
||||||
if (item->HitPoints <= 0)
|
if (item->HitPoints <= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -118,8 +118,8 @@ namespace TEN::Entities::TR4
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
short boneAngle = 0;
|
short boneAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
AI_INFO ai;
|
AI_INFO ai;
|
||||||
|
|
||||||
|
|
|
@ -706,11 +706,11 @@ namespace TEN::Entities::TR4
|
||||||
else
|
else
|
||||||
pos.y = height - CLICK(0.5f);
|
pos.y = height - CLICK(0.5f);
|
||||||
|
|
||||||
TriggerShockwave((Pose*)&pos, 24, 88, 256, 128, 128, 128, 32, EulerAngles::Zero, 8, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave((Pose*)&pos, 24, 88, 256, 128, 128, 128, 32, EulerAngles::Identity, 8, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
TriggerHammerSmoke(pos.x, pos.y + 128, pos.z, 8);
|
TriggerHammerSmoke(pos.x, pos.y + 128, pos.z, 8);
|
||||||
|
|
||||||
pos.y -= 64;
|
pos.y -= 64;
|
||||||
TriggerShockwave((Pose*)&pos, 24, 88, 200, 128, 128, 128, 32, EulerAngles::Zero, 8, true, false, true, (int)ShockwaveStyle::Normal);
|
TriggerShockwave((Pose*)&pos, 24, 88, 200, 128, 128, 128, 32, EulerAngles::Identity, 8, true, false, true, (int)ShockwaveStyle::Normal);
|
||||||
|
|
||||||
auto lightColor = Color(1.0f, 0.4f, 0.2f);
|
auto lightColor = Color(1.0f, 0.4f, 0.2f);
|
||||||
TriggerDynamicLight(pos.ToVector3(), lightColor, 0.1f);
|
TriggerDynamicLight(pos.ToVector3(), lightColor, 0.1f);
|
||||||
|
|
|
@ -272,8 +272,8 @@ namespace TEN::Entities::TR4
|
||||||
auto* creature = GetCreatureInfo(item);
|
auto* creature = GetCreatureInfo(item);
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
int frameNumber;
|
int frameNumber;
|
||||||
|
|
||||||
|
|
|
@ -200,8 +200,8 @@ namespace TEN::Entities::Creatures::TR5
|
||||||
auto& creature = *GetCreatureInfo(&item);
|
auto& creature = *GetCreatureInfo(&item);
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
auto headOrient = EulerAngles::Zero;
|
auto headOrient = EulerAngles::Identity;
|
||||||
auto torsoOrient = EulerAngles::Zero;
|
auto torsoOrient = EulerAngles::Identity;
|
||||||
|
|
||||||
AI_INFO ai;
|
AI_INFO ai;
|
||||||
CreatureAIInfo(&item, &ai);
|
CreatureAIInfo(&item, &ai);
|
||||||
|
|
|
@ -195,8 +195,8 @@ namespace TEN::Entities::Creatures::TR5
|
||||||
|
|
||||||
short headingAngle = 0;
|
short headingAngle = 0;
|
||||||
|
|
||||||
auto extraHeadRot = EulerAngles::Zero;
|
auto extraHeadRot = EulerAngles::Identity;
|
||||||
auto extraTorsoRot = EulerAngles::Zero;
|
auto extraTorsoRot = EulerAngles::Identity;
|
||||||
|
|
||||||
AI_INFO ai;
|
AI_INFO ai;
|
||||||
if (item->HitPoints <= 0)
|
if (item->HitPoints <= 0)
|
||||||
|
|
|
@ -601,7 +601,7 @@ namespace TEN::Entities::Creatures::TR5
|
||||||
TriggerExplosionSparks(item.Pose.Position.x, item.Pose.Position.y, item.Pose.Position.z, 3, -2, 2, item.RoomNumber);
|
TriggerExplosionSparks(item.Pose.Position.x, item.Pose.Position.y, item.Pose.Position.z, 3, -2, 2, item.RoomNumber);
|
||||||
TriggerExplosionSparks(item.Pose.Position.x, item.Pose.Position.y, item.Pose.Position.z, 2, 0, 2, item.RoomNumber);
|
TriggerExplosionSparks(item.Pose.Position.x, item.Pose.Position.y, item.Pose.Position.z, 2, 0, 2, item.RoomNumber);
|
||||||
|
|
||||||
TriggerShockwave(&item.Pose, 32, 160, 64, 0, 128, 64, 36, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&item.Pose, 32, 160, 64, 0, 128, 64, 36, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
TriggerShockwave(&item.Pose, 32, 160, 64, 0, 128, 64, 36, EulerAngles(0x3000, 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&item.Pose, 32, 160, 64, 0, 128, 64, 36, EulerAngles(0x3000, 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
TriggerShockwave(&item.Pose, 32, 160, 64, 0, 128, 64, 36, EulerAngles(0x6000, 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&item.Pose, 32, 160, 64, 0, 128, 64, 36, EulerAngles(0x6000, 0.0f, 0.0f), 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
|
|
||||||
|
|
|
@ -587,12 +587,12 @@ namespace TEN::Entities::Creatures::TR5
|
||||||
if (item->ItemFlags[0])
|
if (item->ItemFlags[0])
|
||||||
item->ItemFlags[0]--;
|
item->ItemFlags[0]--;
|
||||||
|
|
||||||
TriggerShockwave(&Pose(pos1), 16, 160, 96, 0, color / 2, color, 48, EulerAngles::Zero, 1, true, false, true, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&Pose(pos1), 16, 160, 96, 0, color / 2, color, 48, EulerAngles::Identity, 1, true, false, true, (int)ShockwaveStyle::Normal);
|
||||||
TriggerRomanStatueShockwaveAttackSparks(pos1.x, pos1.y, pos1.z, 128, 64, 0, 128);
|
TriggerRomanStatueShockwaveAttackSparks(pos1.x, pos1.y, pos1.z, 128, 64, 0, 128);
|
||||||
|
|
||||||
pos1.y -= 64;
|
pos1.y -= 64;
|
||||||
|
|
||||||
TriggerShockwave(&Pose(pos1), 16, 160, 64, 0, color / 2, color, 48, EulerAngles::Zero, 1, true, false, true, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&Pose(pos1), 16, 160, 64, 0, color / 2, color, 48, EulerAngles::Identity, 1, true, false, true, (int)ShockwaveStyle::Normal);
|
||||||
|
|
||||||
auto lightColor = Color(0.4f, 0.3f, 0.0f);
|
auto lightColor = Color(0.4f, 0.3f, 0.0f);
|
||||||
TriggerDynamicLight(pos.ToVector3(), lightColor, 0.04f);
|
TriggerDynamicLight(pos.ToVector3(), lightColor, 0.04f);
|
||||||
|
|
|
@ -120,9 +120,9 @@ void MissileControl(short itemNumber)
|
||||||
{
|
{
|
||||||
TriggerExplosionSparks(x, y, z, 3, -2, 2, fx->roomNumber);
|
TriggerExplosionSparks(x, y, z, 3, -2, 2, fx->roomNumber);
|
||||||
fx->pos.Position.y -= 64;
|
fx->pos.Position.y -= 64;
|
||||||
TriggerShockwave(&fx->pos, 48, 256, 64, 64, 128, 0, 24, EulerAngles::Zero, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx->pos, 48, 256, 64, 64, 128, 0, 24, EulerAngles::Identity, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
fx->pos.Position.y -= 128;
|
fx->pos.Position.y -= 128;
|
||||||
TriggerShockwave(&fx->pos, 48, 256, 48, 64, 128, 0, 24, EulerAngles::Zero, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx->pos, 48, 256, 48, 64, 128, 0, 24, EulerAngles::Identity, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
}
|
}
|
||||||
else if (fx->flag1 == 2)
|
else if (fx->flag1 == 2)
|
||||||
{
|
{
|
||||||
|
@ -133,7 +133,7 @@ void MissileControl(short itemNumber)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TriggerExplosionSparks(x, y, z, 3, -2, 0, fx->roomNumber);
|
TriggerExplosionSparks(x, y, z, 3, -2, 0, fx->roomNumber);
|
||||||
TriggerShockwave(&fx->pos, 48, 240, 48, 128, 64, 0, 24, EulerAngles::Zero, 2, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx->pos, 48, 240, 48, 128, 64, 0, 24, EulerAngles::Identity, 2, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
KillEffect(itemNumber);
|
KillEffect(itemNumber);
|
||||||
|
@ -147,9 +147,9 @@ void MissileControl(short itemNumber)
|
||||||
// ROMAN_GOD hit effect
|
// ROMAN_GOD hit effect
|
||||||
TriggerExplosionSparks(x, y, z, 3, -2, 2, fx->roomNumber);
|
TriggerExplosionSparks(x, y, z, 3, -2, 2, fx->roomNumber);
|
||||||
fx->pos.Position.y -= 64;
|
fx->pos.Position.y -= 64;
|
||||||
TriggerShockwave(&fx->pos, 48, 256, 64, 0, 128, 64, 24, EulerAngles::Zero, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx->pos, 48, 256, 64, 0, 128, 64, 24, EulerAngles::Identity, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
fx->pos.Position.y -= 128;
|
fx->pos.Position.y -= 128;
|
||||||
TriggerShockwave(&fx->pos, 48, 256, 48, 0, 128, 64, 24, EulerAngles::Zero, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx->pos, 48, 256, 48, 0, 128, 64, 24, EulerAngles::Identity, 1, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
KillEffect(itemNumber);
|
KillEffect(itemNumber);
|
||||||
DoDamage(LaraItem, 200);
|
DoDamage(LaraItem, 200);
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,7 @@ void MissileControl(short itemNumber)
|
||||||
{
|
{
|
||||||
// HYDRA hit effect
|
// HYDRA hit effect
|
||||||
TriggerExplosionSparks(x, y, z, 3, -2, 0, fx->roomNumber);
|
TriggerExplosionSparks(x, y, z, 3, -2, 0, fx->roomNumber);
|
||||||
TriggerShockwave(&fx->pos, 48, 240, 48, 128, 96, 0, 24, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&fx->pos, 48, 240, 48, 128, 96, 0, 24, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
if (LaraItem->HitPoints >= 500)
|
if (LaraItem->HitPoints >= 500)
|
||||||
DoDamage(LaraItem, 300);
|
DoDamage(LaraItem, 300);
|
||||||
else
|
else
|
||||||
|
|
|
@ -139,7 +139,7 @@ void ExplosionControl(short itemNumber)
|
||||||
{
|
{
|
||||||
TriggerExplosionSparks(CollidedItems[i]->Pose.Position.x, CollidedItems[i]->Pose.Position.y, CollidedItems[i]->Pose.Position.z, 3, -2, 0, CollidedItems[i]->RoomNumber);
|
TriggerExplosionSparks(CollidedItems[i]->Pose.Position.x, CollidedItems[i]->Pose.Position.y, CollidedItems[i]->Pose.Position.z, 3, -2, 0, CollidedItems[i]->RoomNumber);
|
||||||
CollidedItems[i]->Pose.Position.y -= 128;
|
CollidedItems[i]->Pose.Position.y -= 128;
|
||||||
TriggerShockwave(&CollidedItems[i]->Pose, 48, 304, 96, 128, 96, 0, 24, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&CollidedItems[i]->Pose, 48, 304, 96, 128, 96, 0, 24, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
CollidedItems[i]->Pose.Position.y += 128;
|
CollidedItems[i]->Pose.Position.y += 128;
|
||||||
ExplodeItemNode(CollidedItems[i], 0, 0, 80);
|
ExplodeItemNode(CollidedItems[i], 0, 0, 80);
|
||||||
SmashObject(CollidedItems[i]->Index);
|
SmashObject(CollidedItems[i]->Index);
|
||||||
|
@ -165,7 +165,7 @@ void ExplosionControl(short itemNumber)
|
||||||
{
|
{
|
||||||
TriggerExplosionSparks(CollidedMeshes[i]->pos.Position.x, CollidedMeshes[i]->pos.Position.y, CollidedMeshes[i]->pos.Position.z, 3, -2, 0, item->RoomNumber);
|
TriggerExplosionSparks(CollidedMeshes[i]->pos.Position.x, CollidedMeshes[i]->pos.Position.y, CollidedMeshes[i]->pos.Position.z, 3, -2, 0, item->RoomNumber);
|
||||||
CollidedMeshes[i]->pos.Position.y -= 128;
|
CollidedMeshes[i]->pos.Position.y -= 128;
|
||||||
TriggerShockwave(&CollidedMeshes[i]->pos, 40, 176, 64, 128, 96, 0, 16, EulerAngles::Zero, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
TriggerShockwave(&CollidedMeshes[i]->pos, 40, 176, 64, 128, 96, 0, 16, EulerAngles::Identity, 0, true, false, false, (int)ShockwaveStyle::Normal);
|
||||||
CollidedMeshes[i]->pos.Position.y += 128;
|
CollidedMeshes[i]->pos.Position.y += 128;
|
||||||
SoundEffect(GetShatterSound(CollidedMeshes[i]->staticNumber), &CollidedMeshes[i]->pos);
|
SoundEffect(GetShatterSound(CollidedMeshes[i]->staticNumber), &CollidedMeshes[i]->pos);
|
||||||
ShatterObject(NULL, CollidedMeshes[i], -128, item->RoomNumber, 0);
|
ShatterObject(NULL, CollidedMeshes[i], -128, item->RoomNumber, 0);
|
||||||
|
|
|
@ -880,7 +880,7 @@ namespace TEN::Renderer
|
||||||
{
|
{
|
||||||
constexpr auto SCREEN_POS = Vector2(400.0f, 300.0f);
|
constexpr auto SCREEN_POS = Vector2(400.0f, 300.0f);
|
||||||
|
|
||||||
static EulerAngles orient = EulerAngles::Zero;
|
static EulerAngles orient = EulerAngles::Identity;
|
||||||
static float scaler = 1.2f;
|
static float scaler = 1.2f;
|
||||||
|
|
||||||
short invItem = g_Gui.GetRing(RingTypes::Inventory).CurrentObjectList[g_Gui.GetRing(RingTypes::Inventory).CurrentObjectInList].InventoryItem;
|
short invItem = g_Gui.GetRing(RingTypes::Inventory).CurrentObjectList[g_Gui.GetRing(RingTypes::Inventory).CurrentObjectInList].InventoryItem;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue