From 3948a1f726fa4ea2d02a895257ec391152e36882 Mon Sep 17 00:00:00 2001 From: withmorten Date: Sun, 24 Jan 2021 17:06:50 +0100 Subject: [PATCH 001/113] add Vanilla config to premake and premake CI --- .github/workflows/reVC_msvc_amd64.yml | 2 +- .github/workflows/reVC_msvc_x86.yml | 2 +- premake5.lua | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/reVC_msvc_amd64.yml b/.github/workflows/reVC_msvc_amd64.yml index 19804d38..71e0ff1d 100644 --- a/.github/workflows/reVC_msvc_amd64.yml +++ b/.github/workflows/reVC_msvc_amd64.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: platform: [win-amd64-librw_d3d9-oal, win-amd64-librw_gl3_glfw-oal] - buildtype: [Debug, Release] + buildtype: [Debug, Release, Vanilla] steps: - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.0.2 diff --git a/.github/workflows/reVC_msvc_x86.yml b/.github/workflows/reVC_msvc_x86.yml index b9e83dba..f7484ec2 100644 --- a/.github/workflows/reVC_msvc_x86.yml +++ b/.github/workflows/reVC_msvc_x86.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: platform: [win-x86-librw_d3d9-mss, win-x86-librw_gl3_glfw-mss, win-x86-librw_d3d9-oal, win-x86-librw_gl3_glfw-oal] - buildtype: [Debug, Release] + buildtype: [Debug, Release, Vanilla] steps: - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.0.2 diff --git a/premake5.lua b/premake5.lua index a1a7f1dc..f2e6a71f 100644 --- a/premake5.lua +++ b/premake5.lua @@ -65,7 +65,7 @@ end workspace "reVC" language "C++" - configurations { "Debug", "Release" } + configurations { "Debug", "Release", "Vanilla" } startproject "reVC" location "build" symbols "Full" @@ -113,13 +113,16 @@ workspace "reVC" filter "configurations:Debug" defines { "DEBUG" } - filter "configurations:Release" + filter "configurations:not Debug" defines { "NDEBUG" } optimize "Speed" if(_OPTIONS["lto"]) then flags { "LinkTimeOptimization" } end + filter "configurations:Vanilla" + defines { "VANILLA_DEFINES" } + filter { "platforms:win*" } system "windows" From 30c26e5a9cb3591767656fd62109a2a5407e40b9 Mon Sep 17 00:00:00 2001 From: kusst <49589982+kusst@users.noreply.github.com> Date: Wed, 27 Jan 2021 00:35:57 +0100 Subject: [PATCH 002/113] Change text color in texture conversion dialog... ...so it matches VC style. --- src/rw/TexRead.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rw/TexRead.cpp b/src/rw/TexRead.cpp index 632cec02..31a3f58f 100644 --- a/src/rw/TexRead.cpp +++ b/src/rw/TexRead.cpp @@ -329,7 +329,7 @@ ConvertingTexturesScreen(uint32 num, uint32 count, const char *text) CFont::SetCentreOff(); CFont::SetWrapx(SCREEN_SCALE_FROM_RIGHT(170.0f)); CFont::SetJustifyOff(); - CFont::SetColor(CRGBA(255, 217, 106, 255)); + CFont::SetColor(CRGBA(255, 150, 225, 255)); CFont::SetBackGroundOnlyTextOff(); CFont::SetFontStyle(FONT_STANDARD); CFont::PrintString(SCREEN_SCALE_X(170.0f), SCREEN_SCALE_Y(160.0f), TheText.Get(text)); From e1e13d14a4cb41a41c05bf17f891906c1c7f71e0 Mon Sep 17 00:00:00 2001 From: kusst <49589982+kusst@users.noreply.github.com> Date: Wed, 27 Jan 2021 03:36:22 +0100 Subject: [PATCH 003/113] Also change progressbar color --- src/rw/TexRead.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rw/TexRead.cpp b/src/rw/TexRead.cpp index 31a3f58f..5c7f7158 100644 --- a/src/rw/TexRead.cpp +++ b/src/rw/TexRead.cpp @@ -320,7 +320,7 @@ ConvertingTexturesScreen(uint32 num, uint32 count, const char *text) splash->Draw(CRect(0.0f, 0.0f, SCREEN_WIDTH, SCREEN_HEIGHT), CRGBA(255, 255, 255, 255)); CSprite2d::DrawRect(CRect(SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(240.0f), SCREEN_SCALE_FROM_RIGHT(200.0f), SCREEN_SCALE_Y(248.0f)), CRGBA(64, 64, 64, 255)); - CSprite2d::DrawRect(CRect(SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(240.0f), (SCREEN_SCALE_FROM_RIGHT(200.0f) - SCREEN_SCALE_X(200.0f)) * ((float)num / (float)count) + SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(248.0f)), CRGBA(255, 217, 106, 255)); + CSprite2d::DrawRect(CRect(SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(240.0f), (SCREEN_SCALE_FROM_RIGHT(200.0f) - SCREEN_SCALE_X(200.0f)) * ((float)num / (float)count) + SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(248.0f)), CRGBA(255, 150, 225, 255)); CSprite2d::DrawRect(CRect(SCREEN_SCALE_X(120.0f), SCREEN_SCALE_Y(150.0f), SCREEN_SCALE_FROM_RIGHT(120.0f), SCREEN_HEIGHT - SCREEN_SCALE_Y(220.0f)), CRGBA(50, 50, 50, 210)); CFont::SetBackgroundOff(); From 97351ad2c2a05f9221601b27432aaf7b51507103 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 27 Jan 2021 18:50:24 +0200 Subject: [PATCH 004/113] Use original animation names from VCS --- src/animation/AnimManager.cpp | 446 ++++++++++++++++---------------- src/animation/AnimationId.h | 440 ++++++++++++++++---------------- src/control/Phones.cpp | 10 +- src/control/Replay.cpp | 20 +- src/control/Script.cpp | 2 +- src/control/Script4.cpp | 4 +- src/control/Script5.cpp | 8 +- src/control/Script8.cpp | 4 +- src/core/AnimViewer.cpp | 8 +- src/core/Ropes.cpp | 2 +- src/core/World.cpp | 2 +- src/objects/Stinger.cpp | 6 +- src/peds/CopPed.cpp | 4 +- src/peds/EmergencyPed.cpp | 2 +- src/peds/Ped.cpp | 402 ++++++++++++++--------------- src/peds/Ped.h | 30 +-- src/peds/PedAI.cpp | 436 ++++++++++++++++---------------- src/peds/PedFight.cpp | 462 +++++++++++++++++----------------- src/peds/PlayerPed.cpp | 88 +++---- src/render/WaterCannon.cpp | 2 +- src/vehicles/Automobile.cpp | 78 +++--- src/vehicles/Bike.cpp | 76 +++--- src/vehicles/Boat.cpp | 16 +- src/vehicles/Heli.cpp | 2 +- src/weapons/BulletInfo.cpp | 6 +- src/weapons/Weapon.cpp | 24 +- 26 files changed, 1289 insertions(+), 1291 deletions(-) diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index 284a567d..8d35b06b 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -20,252 +20,252 @@ CAnimBlendAssocGroup *CAnimManager::ms_aAnimAssocGroups; CLinkList CAnimManager::ms_animCache; AnimAssocDesc aStdAnimDescs[] = { - { ANIM_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, - { ANIM_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, - { ANIM_SPRINT, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, - { ANIM_IDLE_STANCE, ASSOC_REPEAT }, - { ANIM_WALK_START, ASSOC_HAS_TRANSLATION }, - { ANIM_RUN_STOP, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, - { ANIM_RUN_STOP_R, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, - { ANIM_IDLE_CAM, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_IDLE_HBHB, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_IDLE_TIRED, ASSOC_REPEAT }, - { ANIM_IDLE_ARMED, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_IDLE_CHAT, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_IDLE_TAXI, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_KO_SHOT_FRONT1, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_KO_SHOT_FRONT2, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_KO_SHOT_FRONT3, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_KO_SHOT_FRONT4, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_KO_SHOT_FACE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_KO_SHOT_STOM, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_KO_SHOT_ARML, ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_KO_SHOT_ARMR, ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_KO_SHOT_LEGL, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_KO_SHOT_LEGR, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_KD_LEFT, ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_KD_RIGHT, ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_KO_SKID_FRONT, ASSOC_PARTIAL }, - { ANIM_KO_SPIN_R, ASSOC_PARTIAL }, - { ANIM_KO_SKID_BACK, ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_KO_SPIN_L, ASSOC_PARTIAL }, - { ANIM_SHOT_FRONT_PARTIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_SHOT_LEFT_PARTIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_SHOT_BACK_PARTIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_SHOT_RIGHT_PARTIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_HIT_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_HIT_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_HIT_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_HIT_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FLOOR_HIT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_HIT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_HIT_CHEST, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_HIT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_HIT_WALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_HIT_WALL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FLOOR_HIT_F, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_HIT_BEHIND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_IDLE, ASSOC_REPEAT }, - { ANIM_FIGHT2_IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_SH_F, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_KICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_KNEE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_LHOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_ROUNDHOUSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_LONGKICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FIGHT_PPUNCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_FIGHT_JAB, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_ELBOW_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_ELBOW_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_BKICK_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_BKICK_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BOMBER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_PUNCH_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_PPUNCH2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_KICK_FLOOR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_WEAPON_THROWU, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_FIGHT_SH_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_CAR_JACKED_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_CAR_LJACKED_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_CAR_JACKED_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_CAR_LJACKED_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_CAR_QJACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_QJACKED, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_CAR_ALIGN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_ALIGNHI_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_OPEN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_DOORLOCKED_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_PULLOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_PULLOUT_LOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_GETIN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_GETIN_LOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_CLOSEDOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_CLOSEDOOR_LOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_ROLLDOOR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_ROLLDOOR_LOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_JUMPIN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_GETOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_GETOUT_LOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_CLOSE_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_ALIGN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_ALIGNHI_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_OPEN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_DOORLOCKED_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_PULLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_PULLOUT_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_GETIN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_GETIN_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_CLOSEDOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_CLOSEDOOR_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_SHUFFLE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_LSHUFFLE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_SIT, ASSOC_DELETEFADEDOUT}, - { ANIM_CAR_LSIT, ASSOC_DELETEFADEDOUT}, - { ANIM_CAR_SITP, ASSOC_DELETEFADEDOUT}, - { ANIM_CAR_SITPLO, ASSOC_DELETEFADEDOUT}, - { ANIM_DRIVE_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVE_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVE_LOW_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVE_LOW_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVEBY_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVEBY_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVEBY_LOW_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVEBY_LOW_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_CAR_LB, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVE_BOAT, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, - { ANIM_DRIVE_BOAT_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVE_BOAT_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BOAT_LB, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_PICKUP_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_PICKUP_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_PULLUP_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_PULLUP_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_ELBOW_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_ELBOW_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_FALL_OFF, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_BIKE_FALL_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_CAR_GETOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_GETOUT_LOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_CLOSE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_HOOKERTALK, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_TRAIN_GETIN, ASSOC_PARTIAL }, - { ANIM_TRAIN_GETOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_CRAWLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_CRAWLOUT_RHS2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_CAR_ROLLOUT_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, - { ANIM_CAR_ROLLOUT_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, - { ANIM_GETUP1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_GETUP2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_GETUP3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_GETUP_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_JUMP_LAUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_JUMP_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_JUMP_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FALL_FALL, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_FALL_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_FALL_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FALL_COLLAPSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FALL_BACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_FALL_FRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, - { ANIM_EV_STEP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_EV_DIVE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, - { ANIM_XPRESS_SCRATCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, - { ANIM_ROAD_CROSS, ASSOC_REPEAT | ASSOC_PARTIAL }, - { ANIM_TURN_180, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ARREST_GUN, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_DROWN, ASSOC_PARTIAL }, - { ANIM_DUCK_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_DUCK_LOW, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_WEAPON_CROUCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_RBLOCK_CSHOOT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_HANDSUP, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_HANDSCOWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_FUCKU, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_PHONE_IN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_PHONE_OUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_PHONE_TALK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, - { ANIM_SEAT_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_SEAT_UP, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_SEAT_IDLE, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_SEAT_DOWN2, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATM, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ABSEIL, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_RUNFAST, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_IDLE, ASSOC_REPEAT }, + { ANIM_STD_STARTWALK, ASSOC_HAS_TRANSLATION }, + { ANIM_STD_RUNSTOP1, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_RUNSTOP2, ASSOC_DELETEFADEDOUT | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_IDLE_CAM, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_IDLE_HBHB, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_IDLE_TIRED, ASSOC_REPEAT }, + { ANIM_STD_IDLE_BIGGUN, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_CHAT, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_HAILTAXI, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_KO_FRONT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_LEFT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_BACK, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_RIGHT, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_SHOT_FACE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_KO_SHOT_STOMACH, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_KO_SHOT_ARM_L, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_KO_SHOT_ARM_R, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_KO_SHOT_LEG_L, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_KO_SHOT_LEG_R, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_SPINFORWARD_LEFT, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_SPINFORWARD_RIGHT, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_HIGHIMPACT_FRONT, ASSOC_PARTIAL }, + { ANIM_STD_HIGHIMPACT_LEFT, ASSOC_PARTIAL }, + { ANIM_STD_HIGHIMPACT_BACK, ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_HIGHIMPACT_RIGHT, ASSOC_PARTIAL }, + { ANIM_STD_HITBYGUN_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_HITBYGUN_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_HITBYGUN_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_HITBYGUN_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_HIT_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_HIT_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_HIT_FLOOR, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_HIT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_CHEST, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_WALK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_WALL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HIT_FLOOR_FRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_HIT_BEHIND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_IDLE, ASSOC_REPEAT }, + { ANIM_STD_FIGHT_2IDLE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_SHUFFLE_F, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FIGHT_BODYBLOW, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_HEAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_KICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_KNEE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_LHOOK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_ROUNDHOUSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FIGHT_LONGKICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_PARTIAL_PUNCH, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_FIGHT_JAB, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_ELBOW_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_ELBOW_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_BKICK_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_BKICK_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_DETONATE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_PARTIALPUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_KICKGROUND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_THROW_UNDER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_FIGHT_SHUFFLE_B, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_JACKEDCAR_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_JACKEDCAR_LO_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_JACKEDCAR_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_JACKEDCAR_LO_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_QUICKJACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_QUICKJACKED, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_CAR_ALIGN_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_ALIGNHI_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_OPEN_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CARDOOR_LOCKED_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_PULL_OUT_PED_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_PULL_OUT_PED_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_GET_IN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_GET_IN_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_JUMP_IN_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_GETOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_GETOUT_LO_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_ALIGN_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_ALIGNHI_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_OPEN_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CARDOOR_LOCKED_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_PULL_OUT_PED_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_PULL_OUT_PED_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_GET_IN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_GET_IN_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_DOOR_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_SHUFFLE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_SHUFFLE_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_SIT, ASSOC_DELETEFADEDOUT}, + { ANIM_STD_CAR_SIT_LO, ASSOC_DELETEFADEDOUT}, + { ANIM_STD_CAR_SIT_P, ASSOC_DELETEFADEDOUT}, + { ANIM_STD_CAR_SIT_P_LO, ASSOC_DELETEFADEDOUT}, + { ANIM_STD_CAR_DRIVE_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVE_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVE_LEFT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVE_RIGHT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVEBY_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVEBY_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVEBY_LEFT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_DRIVEBY_RIGHT_LO, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_CAR_LOOKBEHIND, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_BOAT_DRIVE, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, + { ANIM_STD_BOAT_DRIVE_LEFT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_BOAT_DRIVE_RIGHT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_BOAT_LOOKBEHIND, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_STD_BIKE_PICKUP_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_PICKUP_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_PULLUP_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_PULLUP_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_ELBOW_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_ELBOW_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_BIKE_FALLOFF, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_BIKE_FALLBACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_GETOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_GETOUT_LO_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_CLOSE_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CAR_HOOKERTALK, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_TRAIN_GETIN, ASSOC_PARTIAL }, + { ANIM_STD_TRAIN_GETOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CRAWLOUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_CRAWLOUT_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_ROLLOUT_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_STD_ROLLOUT_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_STD_GET_UP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_GET_UP_LEFT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_GET_UP_RIGHT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_GET_UP_FRONT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_JUMP_LAUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_JUMP_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_JUMP_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FALL, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_FALL_GLIDE, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_FALL_LAND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FALL_COLLAPSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_FALL_ONBACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_FALL_ONFRONT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_FRONTAL }, + { ANIM_STD_EVADE_STEP, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_EVADE_DIVE, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_FRONTAL }, + { ANIM_STD_XPRESS_SCRATCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_IDLE }, + { ANIM_STD_ROADCROSS, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_STD_TURN180, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_ARREST, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_DROWN, ASSOC_PARTIAL }, + { ANIM_STD_DUCK_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_DUCK_LOW, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_DUCK_WEAPON, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_RBLOCK_SHOOT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_HANDSUP, ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_HANDSCOWER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_STD_PARTIAL_FUCKU, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_STD_PHONE_IN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_PHONE_OUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_PHONE_TALK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, + { ANIM_STD_SEAT_DOWN, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_SEAT_UP, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_SEAT_IDLE, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_SEAT_RVRS, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_ATM, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_ABSEIL, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, }; AnimAssocDesc aVanAnimDescs[] = { - { ANIM_VAN_OPEN_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_VAN_GETIN_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_VAN_CLOSE_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_VAN_GETOUT_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_VAN_OPEN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_VAN_GETIN, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_VAN_CLOSE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_VAN_GETOUT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_OPEN_DOOR_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_GET_IN_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_GET_OUT_REAR_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_OPEN_DOOR_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_GET_IN_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_VAN_GET_OUT_REAR_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aCoachAnimDescs[] = { - { ANIM_COACH_OPEN_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_COACH_OPEN_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_COACH_IN_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_COACH_IN_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_COACH_OUT_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_OPEN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_OPEN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_GET_IN_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_GET_IN_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_STD_COACH_GET_OUT_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aBikeAnimDescs[] = { { ANIM_BIKE_RIDE, ASSOC_DELETEFADEDOUT}, - { ANIM_BIKE_STILL, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_READY, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_BIKE_LEFT, ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_BIKE_RIGHT, ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_BACK, ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_FWD, ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_PUSHES, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_JUMPON_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_JUMPON_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_LEANB, ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_LEANF, ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_WALKBACK, ASSOC_REPEAT | ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_JUMPON_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_JUMPON_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_BIKE_KICK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_BIKE_HIT, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_BIKE_GETOFF_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_BIKE_GETOFF_LHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_BIKE_GETOFF_RHS, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_BIKE_GETOFF_BACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, - { ANIM_BIKE_DRIVEBY_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_BIKE_DRIVEBY_LHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_DRIVEBY_FT, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_BIKE_PASSENGER, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, + { ANIM_BIKE_DRIVEBY_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_DRIVEBY_FORWARD, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BIKE_RIDE_P, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, }; AnimAssocDesc aMeleeAnimDescs[] = { - { ANIM_MELEE_ATTACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_ATTACK_2ND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_ATTACK_START, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_MELEE_IDLE_FIGHTMODE, ASSOC_REPEAT }, - { ANIM_MELEE_ATTACK_FINISH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_ATTACK_1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_EXTRA1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_ATTACK_EXTRA2, ASSOC_REPEAT }, + { ANIM_ATTACK_3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, }; AnimAssocDesc aSwingAnimDescs[] = { - { ANIM_MELEE_ATTACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_ATTACK_2ND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_ATTACK_START, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_MELEE_IDLE_FIGHTMODE, ASSOC_REPEAT }, - { ANIM_MELEE_ATTACK_FINISH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_EXTRA1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_EXTRA2, ASSOC_REPEAT }, + { ANIM_ATTACK_3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aWeaponAnimDescs[] = { - { ANIM_WEAPON_FIRE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_WEAPON_CROUCHFIRE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_WEAPON_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_WEAPON_CROUCHRELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_WEAPON_SPECIAL, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_EXTRA1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_EXTRA2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_ATTACK_3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aMedicAnimDescs[] = { - { ANIM_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MEDIC_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aSunbatheAnimDescs[] = { - { ANIM_SUNBATHE, ASSOC_REPEAT | ASSOC_PARTIAL }, + { ANIM_SUNBATHE_IDLE, ASSOC_REPEAT | ASSOC_PARTIAL }, { ANIM_SUNBATHE_DOWN, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, { ANIM_SUNBATHE_UP, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, { ANIM_SUNBATHE_ESCAPE, ASSOC_REPEAT | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, }; AnimAssocDesc aPlayerIdleAnimDescs[] = { - { ANIM_IDLE_STRETCH, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_IDLE_TIME, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_IDLE_SHOULDER, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_IDLE_STRETCH_LEG, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PLAYER_IDLE1, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PLAYER_IDLE2, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PLAYER_IDLE3, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_PLAYER_IDLE4, ASSOC_DELETEFADEDOUT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aRiotAnimDescs[] = { { ANIM_RIOT_ANGRY, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, @@ -274,7 +274,7 @@ AnimAssocDesc aRiotAnimDescs[] = { { ANIM_RIOT_PUNCHES, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_RIOT_SHOUT, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_RIOT_CHALLENGE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_RIOT_FUKU, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_RIOT_FUCKYOU, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aStripAnimDescs[] = { { ANIM_STRIP_A, ASSOC_REPEAT | ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, @@ -287,11 +287,11 @@ AnimAssocDesc aStripAnimDescs[] = { }; #ifdef PC_PLAYER_CONTROLS AnimAssocDesc aStdAnimDescsSide[] = { - { ANIM_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, - { ANIM_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, - { ANIM_SPRINT, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, - { ANIM_IDLE_STANCE, ASSOC_REPEAT }, - { ANIM_WALK_START, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, + { ANIM_STD_WALK, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_RUN, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_RUNFAST, ASSOC_REPEAT | ASSOC_MOVEMENT | ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION | ASSOC_WALK }, + { ANIM_STD_IDLE, ASSOC_REPEAT }, + { ANIM_STD_STARTWALK, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION }, }; #endif char const* aStdAnimations[] = { diff --git a/src/animation/AnimationId.h b/src/animation/AnimationId.h index cf8b9fe0..afe37f78 100644 --- a/src/animation/AnimationId.h +++ b/src/animation/AnimationId.h @@ -2,256 +2,256 @@ enum AnimationId { - ANIM_WALK, - ANIM_RUN, - ANIM_SPRINT, - ANIM_IDLE_STANCE, - ANIM_WALK_START, - ANIM_RUN_STOP, - ANIM_RUN_STOP_R, - ANIM_IDLE_CAM, - ANIM_IDLE_HBHB, - ANIM_IDLE_TIRED, - ANIM_IDLE_ARMED, - ANIM_IDLE_CHAT, - ANIM_IDLE_TAXI, - ANIM_KO_SHOT_FRONT1, - ANIM_KO_SHOT_FRONT2, - ANIM_KO_SHOT_FRONT3, - ANIM_KO_SHOT_FRONT4, - ANIM_KO_SHOT_FACE, - ANIM_KO_SHOT_STOM, - ANIM_KO_SHOT_ARML, - ANIM_KO_SHOT_ARMR, - ANIM_KO_SHOT_LEGL, - ANIM_KO_SHOT_LEGR, - ANIM_KD_LEFT, - ANIM_KD_RIGHT, - ANIM_KO_SKID_FRONT, - ANIM_KO_SPIN_R, // named left in VC - ANIM_KO_SKID_BACK, - ANIM_KO_SPIN_L, // named right in VC - ANIM_SHOT_FRONT_PARTIAL, - ANIM_SHOT_LEFT_PARTIAL, - ANIM_SHOT_BACK_PARTIAL, - ANIM_SHOT_RIGHT_PARTIAL, - ANIM_HIT_FRONT, - ANIM_HIT_LEFT, - ANIM_HIT_BACK, - ANIM_HIT_RIGHT, - ANIM_FLOOR_HIT, - ANIM_HIT_BODYBLOW, - ANIM_HIT_CHEST, - ANIM_HIT_HEAD, - ANIM_HIT_WALK, - ANIM_HIT_WALL, - ANIM_FLOOR_HIT_F, - ANIM_HIT_BEHIND, - ANIM_FIGHT_IDLE, - ANIM_FIGHT2_IDLE, - ANIM_FIGHT_SH_F, - ANIM_FIGHT_BODYBLOW, - ANIM_FIGHT_HEAD, - ANIM_FIGHT_KICK, - ANIM_FIGHT_KNEE, - ANIM_FIGHT_LHOOK, - ANIM_FIGHT_PUNCH, - ANIM_FIGHT_ROUNDHOUSE, - ANIM_FIGHT_LONGKICK, - ANIM_FIGHT_PPUNCH, + ANIM_STD_WALK, + ANIM_STD_RUN, + ANIM_STD_RUNFAST, + ANIM_STD_IDLE, + ANIM_STD_STARTWALK, + ANIM_STD_RUNSTOP1, + ANIM_STD_RUNSTOP2, + ANIM_STD_IDLE_CAM, + ANIM_STD_IDLE_HBHB, + ANIM_STD_IDLE_TIRED, + ANIM_STD_IDLE_BIGGUN, + ANIM_STD_CHAT, + ANIM_STD_HAILTAXI, + ANIM_STD_KO_FRONT, + ANIM_STD_KO_LEFT, + ANIM_STD_KO_BACK, + ANIM_STD_KO_RIGHT, + ANIM_STD_KO_SHOT_FACE, + ANIM_STD_KO_SHOT_STOMACH, + ANIM_STD_KO_SHOT_ARM_L, + ANIM_STD_KO_SHOT_ARM_R, + ANIM_STD_KO_SHOT_LEG_L, + ANIM_STD_KO_SHOT_LEG_R, + ANIM_STD_SPINFORWARD_LEFT, + ANIM_STD_SPINFORWARD_RIGHT, + ANIM_STD_HIGHIMPACT_FRONT, + ANIM_STD_HIGHIMPACT_LEFT, + ANIM_STD_HIGHIMPACT_BACK, + ANIM_STD_HIGHIMPACT_RIGHT, + ANIM_STD_HITBYGUN_FRONT, + ANIM_STD_HITBYGUN_LEFT, + ANIM_STD_HITBYGUN_BACK, + ANIM_STD_HITBYGUN_RIGHT, + ANIM_STD_HIT_FRONT, + ANIM_STD_HIT_LEFT, + ANIM_STD_HIT_BACK, + ANIM_STD_HIT_RIGHT, + ANIM_STD_HIT_FLOOR, - ANIM_FIGHT_JAB, - ANIM_FIGHT_ELBOW_L, - ANIM_FIGHT_ELBOW_R, - ANIM_FIGHT_BKICK_L, - ANIM_FIGHT_BKICK_R, + /* names made up */ + ANIM_STD_HIT_BODYBLOW, + ANIM_STD_HIT_CHEST, + ANIM_STD_HIT_HEAD, + ANIM_STD_HIT_WALK, + /**/ - ANIM_BOMBER, - ANIM_PUNCH_R, - ANIM_FIGHT_PPUNCH2, - ANIM_KICK_FLOOR, + ANIM_STD_HIT_WALL, + ANIM_STD_HIT_FLOOR_FRONT, + ANIM_STD_HIT_BEHIND, + ANIM_STD_FIGHT_IDLE, + ANIM_STD_FIGHT_2IDLE, + ANIM_STD_FIGHT_SHUFFLE_F, - ANIM_WEAPON_THROWU, - ANIM_FIGHT_SH_BACK, + /* names made up */ + ANIM_STD_FIGHT_BODYBLOW, + ANIM_STD_FIGHT_HEAD, + ANIM_STD_FIGHT_KICK, + ANIM_STD_FIGHT_KNEE, + ANIM_STD_FIGHT_LHOOK, + ANIM_STD_FIGHT_PUNCH, + ANIM_STD_FIGHT_ROUNDHOUSE, + ANIM_STD_FIGHT_LONGKICK, + /**/ - ANIM_CAR_JACKED_RHS, - ANIM_CAR_LJACKED_RHS, - ANIM_CAR_JACKED_LHS, - ANIM_CAR_LJACKED_LHS, - ANIM_CAR_QJACK, - ANIM_CAR_QJACKED, - ANIM_CAR_ALIGN_LHS, - ANIM_CAR_ALIGNHI_LHS, - ANIM_CAR_OPEN_LHS, - ANIM_CAR_DOORLOCKED_LHS, - ANIM_CAR_PULLOUT_LHS, - ANIM_CAR_PULLOUT_LOW_LHS, - ANIM_CAR_GETIN_LHS, - ANIM_CAR_GETIN_LOW_LHS, - ANIM_CAR_CLOSEDOOR_LHS, - ANIM_CAR_CLOSEDOOR_LOW_LHS, - ANIM_CAR_ROLLDOOR, - ANIM_CAR_ROLLDOOR_LOW, - ANIM_CAR_JUMPIN_LHS, - ANIM_CAR_GETOUT_LHS, - ANIM_CAR_GETOUT_LOW_LHS, - ANIM_CAR_CLOSE_LHS, - ANIM_CAR_ALIGN_RHS, - ANIM_CAR_ALIGNHI_RHS, - ANIM_CAR_OPEN_RHS, - ANIM_CAR_DOORLOCKED_RHS, - ANIM_CAR_PULLOUT_RHS, - ANIM_CAR_PULLOUT_LOW_RHS, - ANIM_CAR_GETIN_RHS, - ANIM_CAR_GETIN_LOW_RHS, - ANIM_CAR_CLOSEDOOR_RHS, - ANIM_CAR_CLOSEDOOR_LOW_RHS, - ANIM_CAR_SHUFFLE_RHS, - ANIM_CAR_LSHUFFLE_RHS, - ANIM_CAR_SIT, - ANIM_CAR_LSIT, - ANIM_CAR_SITP, - ANIM_CAR_SITPLO, - ANIM_DRIVE_L, - ANIM_DRIVE_R, - ANIM_DRIVE_LOW_L, - ANIM_DRIVE_LOW_R, - ANIM_DRIVEBY_L, - ANIM_DRIVEBY_R, - ANIM_DRIVEBY_LOW_L, - ANIM_DRIVEBY_LOW_R, - ANIM_CAR_LB, - ANIM_DRIVE_BOAT, - ANIM_DRIVE_BOAT_L, - ANIM_DRIVE_BOAT_R, - ANIM_BOAT_LB, + ANIM_STD_PARTIAL_PUNCH, - ANIM_BIKE_PICKUP_R, - ANIM_BIKE_PICKUP_L, - ANIM_BIKE_PULLUP_R, - ANIM_BIKE_PULLUP_L, - ANIM_BIKE_ELBOW_R, - ANIM_BIKE_ELBOW_L, - ANIM_BIKE_FALL_OFF, - ANIM_BIKE_FALL_R, + /* names made up */ + ANIM_STD_FIGHT_JAB, + ANIM_STD_FIGHT_ELBOW_L, + ANIM_STD_FIGHT_ELBOW_R, + ANIM_STD_FIGHT_BKICK_L, + ANIM_STD_FIGHT_BKICK_R, + /**/ - ANIM_CAR_GETOUT_RHS, - ANIM_CAR_GETOUT_LOW_RHS, - ANIM_CAR_CLOSE_RHS, - ANIM_CAR_HOOKERTALK, + ANIM_STD_DETONATE, + ANIM_STD_PUNCH, + ANIM_STD_PARTIALPUNCH, + ANIM_STD_KICKGROUND, - ANIM_TRAIN_GETIN, - ANIM_TRAIN_GETOUT, + ANIM_STD_THROW_UNDER, + ANIM_STD_FIGHT_SHUFFLE_B, - ANIM_CAR_CRAWLOUT_RHS, - ANIM_CAR_CRAWLOUT_RHS2, - ANIM_CAR_ROLLOUT_LHS, - ANIM_CAR_ROLLOUT_RHS, + ANIM_STD_JACKEDCAR_RHS, + ANIM_STD_JACKEDCAR_LO_RHS, + ANIM_STD_JACKEDCAR_LHS, + ANIM_STD_JACKEDCAR_LO_LHS, + ANIM_STD_QUICKJACK, + ANIM_STD_QUICKJACKED, + ANIM_STD_CAR_ALIGN_DOOR_LHS, + ANIM_STD_CAR_ALIGNHI_DOOR_LHS, + ANIM_STD_CAR_OPEN_DOOR_LHS, + ANIM_STD_CARDOOR_LOCKED_LHS, + ANIM_STD_CAR_PULL_OUT_PED_LHS, + ANIM_STD_CAR_PULL_OUT_PED_LO_LHS, + ANIM_STD_CAR_GET_IN_LHS, + ANIM_STD_CAR_GET_IN_LO_LHS, + ANIM_STD_CAR_CLOSE_DOOR_LHS, + ANIM_STD_CAR_CLOSE_DOOR_LO_LHS, + ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, + ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS, + ANIM_STD_CAR_JUMP_IN_LO_LHS, + ANIM_STD_GETOUT_LHS, + ANIM_STD_GETOUT_LO_LHS, + ANIM_STD_CAR_CLOSE_LHS, + ANIM_STD_CAR_ALIGN_DOOR_RHS, + ANIM_STD_CAR_ALIGNHI_DOOR_RHS, + ANIM_STD_CAR_OPEN_DOOR_RHS, + ANIM_STD_CARDOOR_LOCKED_RHS, + ANIM_STD_CAR_PULL_OUT_PED_RHS, + ANIM_STD_CAR_PULL_OUT_PED_LO_RHS, + ANIM_STD_CAR_GET_IN_RHS, + ANIM_STD_CAR_GET_IN_LO_RHS, + ANIM_STD_CAR_CLOSE_DOOR_RHS, + ANIM_STD_CAR_CLOSE_DOOR_LO_RHS, + ANIM_STD_CAR_SHUFFLE_RHS, + ANIM_STD_CAR_SHUFFLE_LO_RHS, + ANIM_STD_CAR_SIT, + ANIM_STD_CAR_SIT_LO, + ANIM_STD_CAR_SIT_P, + ANIM_STD_CAR_SIT_P_LO, + ANIM_STD_CAR_DRIVE_LEFT, + ANIM_STD_CAR_DRIVE_RIGHT, + ANIM_STD_CAR_DRIVE_LEFT_LO, + ANIM_STD_CAR_DRIVE_RIGHT_LO, + ANIM_STD_CAR_DRIVEBY_LEFT, + ANIM_STD_CAR_DRIVEBY_RIGHT, + ANIM_STD_CAR_DRIVEBY_LEFT_LO, + ANIM_STD_CAR_DRIVEBY_RIGHT_LO, + ANIM_STD_CAR_LOOKBEHIND, + ANIM_STD_BOAT_DRIVE, + ANIM_STD_BOAT_DRIVE_LEFT, + ANIM_STD_BOAT_DRIVE_RIGHT, + ANIM_STD_BOAT_LOOKBEHIND, - ANIM_GETUP1, - ANIM_GETUP2, - ANIM_GETUP3, - ANIM_GETUP_FRONT, - ANIM_JUMP_LAUNCH, - ANIM_JUMP_GLIDE, - ANIM_JUMP_LAND, - ANIM_FALL_FALL, - ANIM_FALL_GLIDE, - ANIM_FALL_LAND, - ANIM_FALL_COLLAPSE, - ANIM_FALL_BACK, - ANIM_FALL_FRONT, + ANIM_STD_BIKE_PICKUP_LHS, + ANIM_STD_BIKE_PICKUP_RHS, + ANIM_STD_BIKE_PULLUP_LHS, + ANIM_STD_BIKE_PULLUP_RHS, + ANIM_STD_BIKE_ELBOW_LHS, + ANIM_STD_BIKE_ELBOW_RHS, + ANIM_STD_BIKE_FALLOFF, + ANIM_STD_BIKE_FALLBACK, - ANIM_EV_STEP, - ANIM_EV_DIVE, - ANIM_XPRESS_SCRATCH, - ANIM_ROAD_CROSS, - ANIM_TURN_180, - ANIM_ARREST_GUN, - ANIM_DROWN, - ANIM_DUCK_DOWN, - ANIM_DUCK_LOW, + ANIM_STD_GETOUT_RHS, + ANIM_STD_GETOUT_LO_RHS, + ANIM_STD_CAR_CLOSE_RHS, + ANIM_STD_CAR_HOOKERTALK, - ANIM_WEAPON_CROUCH, + ANIM_STD_TRAIN_GETIN, + ANIM_STD_TRAIN_GETOUT, - ANIM_RBLOCK_CSHOOT, - ANIM_HANDSUP, - ANIM_HANDSCOWER, - ANIM_FUCKU, - ANIM_PHONE_IN, - ANIM_PHONE_OUT, - ANIM_PHONE_TALK, + ANIM_STD_CRAWLOUT_LHS, + ANIM_STD_CRAWLOUT_RHS, + ANIM_STD_ROLLOUT_LHS, + ANIM_STD_ROLLOUT_RHS, - ANIM_SEAT_DOWN, - ANIM_SEAT_UP, - ANIM_SEAT_IDLE, - ANIM_SEAT_DOWN2, - ANIM_ATM, - ANIM_ABSEIL, + ANIM_STD_GET_UP, + ANIM_STD_GET_UP_LEFT, + ANIM_STD_GET_UP_RIGHT, + ANIM_STD_GET_UP_FRONT, + ANIM_STD_JUMP_LAUNCH, + ANIM_STD_JUMP_GLIDE, + ANIM_STD_JUMP_LAND, + ANIM_STD_FALL, + ANIM_STD_FALL_GLIDE, + ANIM_STD_FALL_LAND, + ANIM_STD_FALL_COLLAPSE, + ANIM_STD_FALL_ONBACK, + ANIM_STD_FALL_ONFRONT, - NUM_STD_ANIMS, + ANIM_STD_EVADE_STEP, + ANIM_STD_EVADE_DIVE, + ANIM_STD_XPRESS_SCRATCH, + ANIM_STD_ROADCROSS, + ANIM_STD_TURN180, + ANIM_STD_ARREST, + ANIM_STD_DROWN, + ANIM_STD_DUCK_DOWN, + ANIM_STD_DUCK_LOW, - ANIM_VAN_OPEN_L, - ANIM_VAN_GETIN_L, - ANIM_VAN_CLOSE_L, - ANIM_VAN_GETOUT_L, - ANIM_VAN_OPEN, - ANIM_VAN_GETIN, - ANIM_VAN_CLOSE, - ANIM_VAN_GETOUT, + ANIM_STD_DUCK_WEAPON, - ANIM_COACH_OPEN_L, - ANIM_COACH_OPEN_R, - ANIM_COACH_IN_L, - ANIM_COACH_IN_R, - ANIM_COACH_OUT_L, + ANIM_STD_RBLOCK_SHOOT, + ANIM_STD_HANDSUP, + ANIM_STD_HANDSCOWER, + ANIM_STD_PARTIAL_FUCKU, + ANIM_STD_PHONE_IN, + ANIM_STD_PHONE_OUT, + ANIM_STD_PHONE_TALK, + + ANIM_STD_SEAT_DOWN, + ANIM_STD_SEAT_UP, + ANIM_STD_SEAT_IDLE, + ANIM_STD_SEAT_RVRS, + ANIM_STD_ATM, + ANIM_STD_ABSEIL, + + ANIM_STD_NUM, + + ANIM_STD_VAN_OPEN_DOOR_REAR_LHS, + ANIM_STD_VAN_GET_IN_REAR_LHS, + ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS, + ANIM_STD_VAN_GET_OUT_REAR_LHS, + ANIM_STD_VAN_OPEN_DOOR_REAR_RHS, + ANIM_STD_VAN_GET_IN_REAR_RHS, + ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS, + ANIM_STD_VAN_GET_OUT_REAR_RHS, + + ANIM_STD_COACH_OPEN_LHS, + ANIM_STD_COACH_OPEN_RHS, + ANIM_STD_COACH_GET_IN_LHS, + ANIM_STD_COACH_GET_IN_RHS, + ANIM_STD_COACH_GET_OUT_LHS, ANIM_BIKE_RIDE, - ANIM_BIKE_STILL, + ANIM_BIKE_READY, ANIM_BIKE_LEFT, ANIM_BIKE_RIGHT, - ANIM_BIKE_BACK, - ANIM_BIKE_FWD, - ANIM_BIKE_PUSHES, - ANIM_BIKE_JUMPON_R, - ANIM_BIKE_JUMPON_L, + ANIM_BIKE_LEANB, + ANIM_BIKE_LEANF, + ANIM_BIKE_WALKBACK, + ANIM_BIKE_JUMPON_LHS, + ANIM_BIKE_JUMPON_RHS, ANIM_BIKE_KICK, ANIM_BIKE_HIT, - ANIM_BIKE_GETOFF_RHS, ANIM_BIKE_GETOFF_LHS, + ANIM_BIKE_GETOFF_RHS, ANIM_BIKE_GETOFF_BACK, - ANIM_BIKE_DRIVEBY_RHS, ANIM_BIKE_DRIVEBY_LHS, - ANIM_BIKE_DRIVEBY_FT, - ANIM_BIKE_PASSENGER, + ANIM_BIKE_DRIVEBY_RHS, + ANIM_BIKE_DRIVEBY_FORWARD, + ANIM_BIKE_RIDE_P, - ANIM_WEAPON_FIRE, - ANIM_WEAPON_CROUCHFIRE, - ANIM_WEAPON_RELOAD, - ANIM_WEAPON_CROUCHRELOAD, - ANIM_WEAPON_SPECIAL, - ANIM_MELEE_ATTACK = ANIM_WEAPON_FIRE, - ANIM_MELEE_ATTACK_2ND, - ANIM_MELEE_ATTACK_START, - ANIM_MELEE_IDLE_FIGHTMODE, - ANIM_MELEE_ATTACK_FINISH, - ANIM_THROWABLE_THROW = ANIM_WEAPON_FIRE, - ANIM_THROWABLE_THROWU, - ANIM_THROWABLE_START_THROW, - ANIM_WEAPON_FIRE_2ND = ANIM_WEAPON_CROUCHFIRE, - ANIM_WEAPON_FIRE_3RD = ANIM_WEAPON_SPECIAL, + ANIM_ATTACK_1, + ANIM_ATTACK_2, + ANIM_ATTACK_EXTRA1, + ANIM_ATTACK_EXTRA2, + ANIM_ATTACK_3, - ANIM_SUNBATHE, + ANIM_SUNBATHE_IDLE, ANIM_SUNBATHE_DOWN, ANIM_SUNBATHE_UP, ANIM_SUNBATHE_ESCAPE, - ANIM_CPR, + ANIM_MEDIC_CPR, - ANIM_IDLE_STRETCH, - ANIM_IDLE_TIME, - ANIM_IDLE_SHOULDER, - ANIM_IDLE_STRETCH_LEG, + ANIM_PLAYER_IDLE1, + ANIM_PLAYER_IDLE2, + ANIM_PLAYER_IDLE3, + ANIM_PLAYER_IDLE4, ANIM_RIOT_ANGRY, ANIM_RIOT_ANGRY_B, @@ -259,7 +259,7 @@ enum AnimationId ANIM_RIOT_PUNCHES, ANIM_RIOT_SHOUT, ANIM_RIOT_CHALLENGE, - ANIM_RIOT_FUKU, + ANIM_RIOT_FUCKYOU, ANIM_STRIP_A, ANIM_STRIP_B, @@ -268,6 +268,4 @@ enum AnimationId ANIM_STRIP_E, ANIM_STRIP_F, ANIM_STRIP_G, - - NUM_ANIMS }; \ No newline at end of file diff --git a/src/control/Phones.cpp b/src/control/Phones.cpp index 411dc8c3..9b50a7ec 100644 --- a/src/control/Phones.cpp +++ b/src/control/Phones.cpp @@ -48,9 +48,9 @@ CPhoneInfo::Update(void) TheCamera.SetWideScreenOff(); pPhoneDisplayingMessages = nil; bDisplayingPhoneMessage = false; - CAnimBlendAssociation *talkAssoc = RpAnimBlendClumpGetAssociation(player->GetClump(), ANIM_PHONE_TALK); + CAnimBlendAssociation *talkAssoc = RpAnimBlendClumpGetAssociation(player->GetClump(), ANIM_STD_PHONE_TALK); if (talkAssoc && talkAssoc->blendAmount > 0.5f) { - CAnimBlendAssociation *endAssoc = CAnimManager::BlendAnimation(player->GetClump(), ASSOCGRP_STD, ANIM_PHONE_OUT, 8.0f); + CAnimBlendAssociation *endAssoc = CAnimManager::BlendAnimation(player->GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_OUT, 8.0f); endAssoc->flags &= ~ASSOC_DELETEFADEDOUT; endAssoc->SetFinishCallback(PhonePutDownCB, player); } else { @@ -107,7 +107,7 @@ CPhoneInfo::Update(void) CPad::GetPad(0)->SetDisablePlayerControls(PLAYERCONTROL_PHONE); TheCamera.SetWideScreenOn(); playerInfo->MakePlayerSafe(true); - CAnimBlendAssociation *phonePickAssoc = CAnimManager::BlendAnimation(player->GetClump(), ASSOCGRP_STD, ANIM_PHONE_IN, 4.0f); + CAnimBlendAssociation *phonePickAssoc = CAnimManager::BlendAnimation(player->GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_IN, 4.0f); phonePickAssoc->SetFinishCallback(PhonePickUpCB, &m_aPhones[phoneId]); bPickingUpPhone = true; pCallBackPed = player; @@ -363,10 +363,10 @@ PhonePickUpCB(CAnimBlendAssociation *assoc, void *arg) CPed *ped = CPhoneInfo::pCallBackPed; ped->m_nMoveState = PEDMOVE_STILL; - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_IDLE_STANCE, 8.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE, 8.0f); if (assoc->blendAmount > 0.5f && ped) - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_PHONE_TALK, 8.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_TALK, 8.0f); CPhoneInfo::pCallBackPed = nil; } diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index 8eae0dc3..cd612d5d 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -521,7 +521,7 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState state->aFunctionCallbackID[i] = 0; } }else{ - state->aAnimId[i] = NUM_STD_ANIMS; + state->aAnimId[i] = ANIM_STD_NUM; state->aCurTime[i] = 0; state->aSpeed[i] = 85; state->aFunctionCallbackID[i] = 0; @@ -548,7 +548,7 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState } } else { - state->aAnimId2[i] = NUM_STD_ANIMS; + state->aAnimId2[i] = ANIM_STD_NUM; state->aCurTime2[i] = 0; state->aSpeed2[i] = 85; state->aFunctionCallbackID2[i] = 0; @@ -611,13 +611,13 @@ bool HasAnimGroupLoaded(uint8 group) void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) { CAnimBlendAssociation* anim1; - if (state->animId <= 3) + if (state->animId <= ANIM_STD_IDLE) anim1 = CAnimManager::BlendAnimation( (RpClump*)ped->m_rwObject, ped->m_animGroup, (AnimationId)state->animId, 100.0f); else if (HasAnimGroupLoaded(state->groupId)) anim1 = CAnimManager::BlendAnimation((RpClump*)ped->m_rwObject, (AssocGroupId)state->groupId, (AnimationId)state->animId, 100.0f); else - anim1 = CAnimManager::BlendAnimation((RpClump*)ped->m_rwObject, ASSOCGRP_STD, ANIM_WALK, 100.0f); + anim1 = CAnimManager::BlendAnimation((RpClump*)ped->m_rwObject, ASSOCGRP_STD, ANIM_STD_WALK, 100.0f); anim1->SetCurrentTime(state->time * 4.0f / 255.0f); anim1->speed = state->speed * 3.0f / 255.0f; @@ -629,7 +629,7 @@ void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) float blend = state->blendAmount * 2.0f / 255.0f; CAnimBlendAssociation* anim2 = CAnimManager::BlendAnimation( (RpClump*)ped->m_rwObject, - (state->secAnimId > 3) ? (AssocGroupId)state->secGroupId : ped->m_animGroup, + (state->secAnimId > ANIM_STD_IDLE) ? (AssocGroupId)state->secGroupId : ped->m_animGroup, (AnimationId)state->secAnimId, 100.0f); anim2->SetCurrentTime(time); anim2->speed = speed; @@ -641,7 +641,7 @@ void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) float time = state->partAnimTime * 4.0f / 255.0f; float speed = state->partAnimSpeed * 3.0f / 255.0f; float blend = state->partBlendAmount * 2.0f / 255.0f; - if (blend > 0.0f && state->partAnimId != ANIM_IDLE_STANCE && HasAnimGroupLoaded(state->partGroupId)){ + if (blend > 0.0f && state->partAnimId != ANIM_STD_IDLE && HasAnimGroupLoaded(state->partGroupId)){ CAnimBlendAssociation* anim3 = CAnimManager::BlendAnimation( (RpClump*)ped->m_rwObject, (AssocGroupId)state->partGroupId, (AnimationId)state->partAnimId, 1000.0f); anim3->SetCurrentTime(time); @@ -659,10 +659,10 @@ void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationSt for (int i = 0; ((assoc = RpAnimBlendClumpGetMainPartialAssociation_N(ped->GetClump(), i))); i++) assoc->SetBlend(0.0f, -1.0f); for (int i = 0; i < NUM_MAIN_ANIMS_IN_REPLAY; i++) { - if (state->aAnimId[i] == NUM_STD_ANIMS) + if (state->aAnimId[i] == ANIM_STD_NUM) continue; CAnimBlendAssociation* anim = CAnimManager::AddAnimation(ped->GetClump(), - state->aAnimId[i] > 3 ? (AssocGroupId)state->aGroupId[i] : ped->m_animGroup, + state->aAnimId[i] > ANIM_STD_IDLE ? (AssocGroupId)state->aGroupId[i] : ped->m_animGroup, (AnimationId)state->aAnimId[i]); anim->SetCurrentTime(state->aCurTime[i] * 4.0f / 255.0f); anim->speed = state->aSpeed[i] * 3.0f / 255.0f; @@ -677,10 +677,10 @@ void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationSt anim->SetDeleteCallback(FindCBFunction(callback & 0x7F), ped); } for (int i = 0; i < NUM_PARTIAL_ANIMS_IN_REPLAY; i++) { - if (state->aAnimId2[i] == NUM_STD_ANIMS) + if (state->aAnimId2[i] == ANIM_STD_NUM) continue; CAnimBlendAssociation* anim = CAnimManager::AddAnimation(ped->GetClump(), - state->aAnimId2[i] > 3 ? (AssocGroupId)state->aGroupId2[i] : ped->m_animGroup, + state->aAnimId2[i] > ANIM_STD_IDLE ? (AssocGroupId)state->aGroupId2[i] : ped->m_animGroup, (AnimationId)state->aAnimId2[i]); anim->SetCurrentTime(state->aCurTime2[i] * 4.0f / 255.0f); anim->speed = state->aSpeed2[i] * 3.0f / 255.0f; diff --git a/src/control/Script.cpp b/src/control/Script.cpp index a160fbc1..cb208912 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -4756,7 +4756,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) pPlayer->m_pPed->m_pVehicleAnim->blendDelta = -1000.0f; pPlayer->m_pPed->m_pVehicleAnim = nil; pPlayer->m_pPed->SetMoveState(PEDMOVE_NONE); - CAnimManager::BlendAnimation(pPlayer->m_pPed->GetClump(), pPlayer->m_pPed->m_animGroup, ANIM_IDLE_STANCE, 1000.0f); + CAnimManager::BlendAnimation(pPlayer->m_pPed->GetClump(), pPlayer->m_pPed->m_animGroup, ANIM_STD_IDLE, 1000.0f); pPlayer->m_pPed->RestartNonPartialAnims(); AudioManager.PlayerJustLeftCar(); pos.z += pPlayer->m_pPed->GetDistanceFromCentreOfMassToBaseOfModel(); diff --git a/src/control/Script4.cpp b/src/control/Script4.cpp index 9830f0dc..878278c5 100644 --- a/src/control/Script4.cpp +++ b/src/control/Script4.cpp @@ -822,7 +822,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) } } pPed->m_pMyVehicle->m_nGettingOutFlags &= ~flags; - pPed->m_pMyVehicle->ProcessOpenDoor(pPed->m_vehDoor, NUM_STD_ANIMS, 0.0f); + pPed->m_pMyVehicle->ProcessOpenDoor(pPed->m_vehDoor, ANIM_STD_NUM, 0.0f); } } } @@ -839,7 +839,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) pPed->m_pVehicleAnim = nil; pPed->RestartNonPartialAnims(); pPed->SetMoveState(PEDMOVE_NONE); - CAnimManager::BlendAnimation(pPed->GetClump(), pPed->m_animGroup, ANIM_IDLE_STANCE, 1000.0f); + CAnimManager::BlendAnimation(pPed->GetClump(), pPed->m_animGroup, ANIM_STD_IDLE, 1000.0f); pos.z += pPed->GetDistanceFromCentreOfMassToBaseOfModel(); pPed->Teleport(pos); CTheScripts::ClearSpaceForMissionEntity(pos, pPed); diff --git a/src/control/Script5.cpp b/src/control/Script5.cpp index cc70a170..1371f2e6 100644 --- a/src/control/Script5.cpp +++ b/src/control/Script5.cpp @@ -2627,10 +2627,10 @@ bool CTheScripts::IsPlayerStopped(CPlayerInfo* pPlayer) CPed* pPed = pPlayer->m_pPed; if (pPed->InVehicle()) return IsVehicleStopped(pPed->m_pMyVehicle); - if (RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_RUN_STOP) || - RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_RUN_STOP_R) || - RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_JUMP_LAUNCH) || - RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_JUMP_GLIDE)) + if (RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_RUNSTOP1) || + RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_RUNSTOP2) || + RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_JUMP_LAUNCH) || + RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_JUMP_GLIDE)) return false; return (pPed->m_nMoveState == PEDMOVE_NONE || pPed->m_nMoveState == PEDMOVE_STILL) && !pPed->bIsInTheAir && !pPed->bIsLanding && pPed->bIsStanding && pPed->m_vecAnimMoveDelta.x == 0.0f && pPed->m_vecAnimMoveDelta.y == 0.0f; diff --git a/src/control/Script8.cpp b/src/control/Script8.cpp index 9a8e536e..2d1ccdf4 100644 --- a/src/control/Script8.cpp +++ b/src/control/Script8.cpp @@ -55,7 +55,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) ((CPlayerPed*)pPed)->m_fMoveSpeed = 0.0f; else pPed->m_nStoredMoveState = PEDMOVE_STILL; - CAnimManager::AddAnimation(pPed->GetClump(), pPed->m_animGroup, ANIM_IDLE_STANCE); + CAnimManager::AddAnimation(pPed->GetClump(), pPed->m_animGroup, ANIM_STD_IDLE); pPed->bIsPedDieAnimPlaying = false; } return 0; @@ -346,7 +346,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command) CollectParameters(&m_nIp, 1); CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); - UpdateCompareFlag(RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_DUCK_DOWN) != nil); + UpdateCompareFlag(RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_DUCK_DOWN) != nil); return 0; } case COMMAND_CREATE_DUST_EFFECT_FOR_CUTSCENE_HELI: diff --git a/src/core/AnimViewer.cpp b/src/core/AnimViewer.cpp index 854ec7d4..562b9c15 100644 --- a/src/core/AnimViewer.cpp +++ b/src/core/AnimViewer.cpp @@ -245,7 +245,7 @@ CAnimViewer::Update(void) if (modelInfo->GetModelType() == MITYPE_PED) { int animGroup = ((CPedModelInfo*)modelInfo)->m_animGroup; - if (animId > ANIM_IDLE_STANCE) + if (animId > ANIM_STD_IDLE) animGroup = ASSOCGRP_STD; if (reloadIFP) { @@ -334,14 +334,14 @@ CAnimViewer::Update(void) CMessages::AddMessage(gUString, 1000, 0); } else if (pad->GetCircleJustDown()) { - PlayAnimation(pTarget->GetClump(), animGroup, ANIM_IDLE_STANCE); + PlayAnimation(pTarget->GetClump(), animGroup, ANIM_STD_IDLE); AsciiToUnicode("Idle animation playing", gUString); CMessages::AddMessage(gUString, 1000, 0); } else if (pad->GetDPadUpJustDown()) { animId--; if (animId < 0) { - animId = NUM_STD_ANIMS - 1; + animId = ANIM_STD_NUM - 1; } PlayAnimation(pTarget->GetClump(), animGroup, (AnimationId)animId); @@ -350,7 +350,7 @@ CAnimViewer::Update(void) CMessages::AddMessage(gUString, 1000, 0); } else if (pad->GetDPadDownJustDown()) { - animId = (animId == (NUM_STD_ANIMS - 1) ? 0 : animId + 1); + animId = (animId == (ANIM_STD_NUM - 1) ? 0 : animId + 1); PlayAnimation(pTarget->GetClump(), animGroup, (AnimationId)animId); sprintf(gString, "Current anim: %d", animId); diff --git a/src/core/Ropes.cpp b/src/core/Ropes.cpp index ffce36f9..52427fc3 100644 --- a/src/core/Ropes.cpp +++ b/src/core/Ropes.cpp @@ -167,7 +167,7 @@ CRopes::CreateRopeWithSwatComingDown(CVector pos) swat->bUsesCollision = false; swat->m_pRopeEntity = (CEntity*)1; swat->m_nRopeID = 100 + ropeId; - CAnimManager::BlendAnimation(swat->GetClump(), ASSOCGRP_STD, ANIM_ABSEIL, 4.0f); + CAnimManager::BlendAnimation(swat->GetClump(), ASSOCGRP_STD, ANIM_STD_ABSEIL, 4.0f); ropeId++; return true; } diff --git a/src/core/World.cpp b/src/core/World.cpp index bc698c83..959d0259 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -2213,7 +2213,7 @@ CWorld::TriggerExplosionSectorList(CPtrList &list, const CVector &position, floa PEDPIECE_TORSO, direction); if(pPed->m_nPedState != PED_DIE) pPed->SetFall(2000, - (AnimationId)(direction + ANIM_KO_SKID_FRONT), 0); + (AnimationId)(direction + ANIM_STD_HIGHIMPACT_FRONT), 0); if(pCreator && pCreator->IsPed()) { eEventType eventType = EVENT_SHOOT_PED; if(pPed->m_nPedType == PEDTYPE_COP) eventType = EVENT_SHOOT_COP; diff --git a/src/objects/Stinger.cpp b/src/objects/Stinger.cpp index b3660881..79730c89 100644 --- a/src/objects/Stinger.cpp +++ b/src/objects/Stinger.cpp @@ -87,10 +87,10 @@ void CStinger::Deploy(CPed *pPed) { if (NumOfStingerSegments < NUM_STINGER_SEGMENTS*2 && !pPed->bInVehicle && pPed->IsPedInControl()) { - if (!bIsDeployed && RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_WEAPON_THROWU) == nil) { + if (!bIsDeployed && RpAnimBlendClumpGetAssociation(pPed->GetClump(), ANIM_STD_THROW_UNDER) == nil) { Init(pPed); pPed->SetPedState(PED_DEPLOY_STINGER); - CAnimManager::AddAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_WEAPON_THROWU); + CAnimManager::AddAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_STD_THROW_UNDER); } } } @@ -170,7 +170,7 @@ CStinger::Process() if (pOwner != nil && !pOwner->bInVehicle && pOwner->GetPedState() == PED_DEPLOY_STINGER - && RpAnimBlendClumpGetAssociation(pOwner->GetClump(), ANIM_WEAPON_THROWU)->currentTime > 0.39f) + && RpAnimBlendClumpGetAssociation(pOwner->GetClump(), ANIM_STD_THROW_UNDER)->currentTime > 0.39f) { m_nSpikeState = STINGERSTATE_DEPLOYING; for (int i = 0; i < NUM_STINGER_SEGMENTS; i++) diff --git a/src/peds/CopPed.cpp b/src/peds/CopPed.cpp index 9d22c98c..36bb02b6 100644 --- a/src/peds/CopPed.cpp +++ b/src/peds/CopPed.cpp @@ -257,9 +257,9 @@ CCopPed::ArrestPlayer(void) if (suspect && (suspect->m_nPedState == PED_ARRESTED || suspect->DyingOrDead() || suspect->EnteringCar())) { - CAnimBlendAssociation *arrestAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ARREST_GUN); + CAnimBlendAssociation *arrestAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ARREST); if (!arrestAssoc || arrestAssoc->blendDelta < 0.0f) - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ARREST_GUN, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ARREST, 4.0f); CVector suspMidPos; suspect->m_pedIK.GetComponentPosition(suspMidPos, PED_MID); diff --git a/src/peds/EmergencyPed.cpp b/src/peds/EmergencyPed.cpp index 62b70d7d..954c1c79 100644 --- a/src/peds/EmergencyPed.cpp +++ b/src/peds/EmergencyPed.cpp @@ -310,7 +310,7 @@ CEmergencyPed::MedicAI(void) m_nEmergencyPedState = EMERGENCY_PED_STAND_STILL; } else { m_nEmergencyPedState = EMERGENCY_PED_FACE_TO_PATIENT; - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_MEDIC, ANIM_CPR, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_MEDIC, ANIM_MEDIC_CPR, 4.0f); bIsDucking = true; } SetLookTimer(2000); diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 6a3df18b..de474f38 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -424,7 +424,7 @@ CPed::SetModelIndex(uint32 mi) SetPedStats(modelInfo->m_pedStatType); m_headingRate = m_pedStats->m_headingChangeRate; m_animGroup = (AssocGroupId) modelInfo->m_animGroup; - CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE); + CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE); if (!CanUseTorsoWhenLooking()) m_pedIK.m_flags |= CPedIK::LOOKAROUND_HEAD_ONLY; @@ -615,32 +615,32 @@ CPed::SetMoveAnim(void) CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_BLOCK); if (!animAssoc) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); if (animAssoc && m_nPedState == PED_FIGHT) return; if (animAssoc) { - CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); + CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); if (!idleAssoc || idleAssoc->blendDelta <= 0.0f) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_IDLE_STANCE, 8.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_IDLE, 8.0f); } } } if (!animAssoc) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); if (animAssoc) if (m_nWaitState == WAITSTATE_STUCK || m_nWaitState == WAITSTATE_FINISH_FLEE) return; if (animAssoc) { - CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); + CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); if (!idleAssoc || idleAssoc->blendDelta <= 0.0f) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_IDLE_STANCE, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_IDLE, 4.0f); } } } @@ -662,20 +662,20 @@ CPed::SetMoveAnim(void) switch (m_nMoveState) { case PEDMOVE_STILL: - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_IDLE_STANCE, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_IDLE, 4.0f); break; case PEDMOVE_WALK: - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_WALK, 1.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_WALK, 1.0f); break; case PEDMOVE_RUN: if (m_nPedState == PED_FLEE_ENTITY) { - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_RUN, 3.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_RUN, 3.0f); } else { - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_RUN, 1.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_RUN, 1.0f); } break; case PEDMOVE_SPRINT: - animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_SPRINT, 1.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), animGroupToUse, ANIM_STD_RUNFAST, 1.0f); break; default: break; @@ -683,12 +683,12 @@ CPed::SetMoveAnim(void) if (animAssoc) { if (m_leader) { - CAnimBlendAssociation *walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_WALK); + CAnimBlendAssociation *walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_STD_WALK); if (!walkAssoc) - walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_RUN); + walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_STD_RUN); if (!walkAssoc) - walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_SPRINT); + walkAssoc = RpAnimBlendClumpGetAssociation(m_leader->GetClump(), ANIM_STD_RUNFAST); if (walkAssoc) { animAssoc->speed = walkAssoc->speed; @@ -1094,7 +1094,7 @@ CPed::MoveHeadToLook(void) return; bool handFreeToMove = false; - AnimationId animToPlay = NUM_STD_ANIMS; + AnimationId animToPlay = ANIM_STD_NUM; if (!GetWeapon()->IsType2Handed() && GetWeapon()->m_eWeaponType != WEAPONTYPE_ROCKETLAUNCHER) handFreeToMove = true; @@ -1107,18 +1107,18 @@ CPed::MoveHeadToLook(void) #else if (m_pedStats->m_temper < 49 || ((CPed*)m_pLookTarget)->m_nPedType == PEDTYPE_COP) #endif - animToPlay = ANIM_FUCKU; + animToPlay = ANIM_STD_PARTIAL_FUCKU; else if(m_pedStats->m_temper < 47) - animToPlay = ANIM_FIGHT_PPUNCH; + animToPlay = ANIM_STD_PARTIAL_PUNCH; } else { if (m_pedStats->m_temper > 49 || m_pLookTarget->GetModelIndex() == MI_POLICE) - animToPlay = ANIM_FUCKU; + animToPlay = ANIM_STD_PARTIAL_FUCKU; } } else if (handFreeToMove && (CGeneral::GetRandomNumber() & 1)) { - animToPlay = ANIM_FUCKU; + animToPlay = ANIM_STD_PARTIAL_FUCKU; } - if (animToPlay != NUM_STD_ANIMS) { + if (animToPlay != ANIM_STD_NUM) { CAnimBlendAssociation *newAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animToPlay, 4.0f); if (newAssoc) { @@ -1427,13 +1427,13 @@ CPed::CalculateNewVelocity(void) m_moved = CVector2D(-Sin(walkAngle), Cos(walkAngle)) * pedSpeed; } - CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); - CAnimBlendAssociation *fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); + CAnimBlendAssociation *idleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); + CAnimBlendAssociation *fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if(!fightAssoc) - fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); + fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); if(!fightAssoc) - fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); + fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); if ((!idleAssoc || idleAssoc->blendAmount < 0.5f) && !fightAssoc && !bIsDucking) { LimbOrientation newUpperLegs; @@ -1914,9 +1914,9 @@ CPed::ProcessControl(void) } else { if (m_nPedType != PEDTYPE_COP && neededTurn < DEGTORAD(15.0f) && m_nWaitState == WAITSTATE_FALSE) { if ((m_nStoredMoveState == PEDMOVE_RUN || m_nStoredMoveState == PEDMOVE_SPRINT) && m_vecDamageNormal.z < 0.3f) { - CAnimBlendAssociation *runAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN); + CAnimBlendAssociation *runAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUN); if (!runAssoc) - runAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SPRINT); + runAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNFAST); if (runAssoc && runAssoc->blendAmount > 0.9f && runAssoc->IsRunning()) { SetWaitState(WAITSTATE_HITWALL, nil); @@ -2220,7 +2220,7 @@ CPed::ProcessControl(void) bIsStanding = false; CVector2D collidingEntMoveDir = -collidingVeh->m_vecMoveSpeed; int dir = GetLocalDirection(collidingEntMoveDir); - SetFall(1000, (AnimationId)(dir + ANIM_KO_SKID_FRONT), false); + SetFall(1000, (AnimationId)(dir + ANIM_STD_HIGHIMPACT_FRONT), false); float damage; if (collidingVeh->m_modelIndex == MI_TRAIN) { @@ -2366,7 +2366,7 @@ CPed::ProcessControl(void) SetHeading(m_fRotationCur); if (m_nPedState != PED_FALL && !bIsPedDieAnimPlaying) { - SetFall(1000, ANIM_KO_SKID_BACK, true); + SetFall(1000, ANIM_STD_HIGHIMPACT_BACK, true); } bIsInTheAir = false; } else if (m_vecDamageNormal.z > 0.4f) { @@ -2414,10 +2414,10 @@ CPed::ProcessControl(void) m_fRotationCur = m_fRotationDest; SetHeading(m_fRotationCur); } - CAnimBlendAssociation *jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_JUMP_GLIDE); + CAnimBlendAssociation *jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_JUMP_GLIDE); if (!jumpAssoc) - jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_GLIDE); + jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_GLIDE); if (jumpAssoc) { jumpAssoc->blendDelta = -3.0f; @@ -2426,10 +2426,10 @@ CPed::ProcessControl(void) if (m_nPedState == PED_JUMP) m_nPedState = PED_IDLE; } else { - CAnimBlendAssociation *jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_JUMP_GLIDE); + CAnimBlendAssociation *jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_JUMP_GLIDE); if (!jumpAssoc) - jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_GLIDE); + jumpAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_GLIDE); if (jumpAssoc) { jumpAssoc->blendDelta = -3.0f; @@ -2560,27 +2560,27 @@ CPed::ProcessControl(void) int16 padWalkX = pad->GetPedWalkLeftRight(); int16 padWalkY = pad->GetPedWalkUpDown(); if (Abs(padWalkX) > 0.0f || Abs(padWalkY) > 0.0f) { - if (vehAnim == ANIM_CAR_OPEN_LHS || vehAnim == ANIM_CAR_OPEN_RHS || vehAnim == ANIM_COACH_OPEN_L || vehAnim == ANIM_COACH_OPEN_R || - vehAnim == ANIM_VAN_OPEN_L || vehAnim == ANIM_VAN_OPEN) { + if (vehAnim == ANIM_STD_CAR_OPEN_DOOR_LHS || vehAnim == ANIM_STD_CAR_OPEN_DOOR_RHS || vehAnim == ANIM_STD_COACH_OPEN_LHS || vehAnim == ANIM_STD_COACH_OPEN_RHS || + vehAnim == ANIM_STD_VAN_OPEN_DOOR_REAR_LHS || vehAnim == ANIM_STD_VAN_OPEN_DOOR_REAR_RHS) { if (!m_pMyVehicle->pDriver) { cancelJack = false; bCancelEnteringCar = true; } else cancelJack = true; - } else if (vehAnim == ANIM_CAR_QJACK && m_pVehicleAnim->GetTimeLeft() > 0.75f) { + } else if (vehAnim == ANIM_STD_QUICKJACK && m_pVehicleAnim->GetTimeLeft() > 0.75f) { cancelJack = true; - } else if (vehAnim == ANIM_CAR_PULLOUT_LHS || vehAnim == ANIM_CAR_PULLOUT_LOW_LHS || vehAnim == ANIM_CAR_PULLOUT_LOW_RHS || vehAnim == ANIM_CAR_PULLOUT_RHS) { + } else if (vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LO_LHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LO_RHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_RHS) { bCancelEnteringCar = true; cancelJack = false; } } - if (cancelJack && vehAnim == ANIM_CAR_QJACK && m_pVehicleAnim->GetTimeLeft() > 0.75f && m_pVehicleAnim->GetTimeLeft() < 0.78f) { + if (cancelJack && vehAnim == ANIM_STD_QUICKJACK && m_pVehicleAnim->GetTimeLeft() > 0.75f && m_pVehicleAnim->GetTimeLeft() < 0.78f) { cancelJack = false; QuitEnteringCar(); RestorePreviousObjective(); } - if (cancelJack && (vehAnim == ANIM_CAR_PULLOUT_LHS || vehAnim == ANIM_CAR_PULLOUT_LOW_LHS || vehAnim == ANIM_CAR_PULLOUT_LOW_RHS || vehAnim == ANIM_CAR_PULLOUT_RHS)) { + if (cancelJack && (vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LO_LHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_LO_RHS || vehAnim == ANIM_STD_CAR_PULL_OUT_PED_RHS)) { cancelJack = false; bCancelEnteringCar = true; } @@ -2771,12 +2771,12 @@ CPed::ProcessControl(void) break; case PED_HANDS_UP: if (m_pedStats->m_flags & STAT_GUN_PANIC) { - if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HANDSCOWER)) { - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSCOWER); + if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HANDSCOWER)) { + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSCOWER); Say(SOUND_PED_HANDS_COWER); } - } else if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HANDSUP)) { - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSUP); + } else if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HANDSUP)) { + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSUP); Say(SOUND_PED_HANDS_UP); } break; @@ -2971,7 +2971,7 @@ CPed::ProcessEntityCollision(CEntity *collidingEnt, CColPoint *collidingPoints) upperSpeedLimit *= 2.0f; lowerSpeedLimit *= 1.5f; } - CAnimBlendAssociation *fallAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FALL); + CAnimBlendAssociation *fallAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL); if (!bWasStanding && speed > upperSpeedLimit && (!bPushedAlongByCar || m_vecMoveSpeed.z < lowerSpeedLimit) && m_pCollidingEntity != collidingEnt) { @@ -3126,7 +3126,7 @@ CPed::PlayFootSteps(void) static float animSections = 15.f; float moveStart, soundVolume, skateTime; - if (walkRunAssoc->animId == ANIM_WALK) { + if (walkRunAssoc->animId == ANIM_STD_WALK) { moveStart = 0.0f; skateTime = 8.f / 15.f; } else { @@ -3138,7 +3138,7 @@ CPed::PlayFootSteps(void) if (CGeneral::GetRandomNumber() % 128) { m_vecAnimMoveDelta *= 0.5f; } else { - SetFall(0, ANIM_KO_SKID_BACK, false); + SetFall(0, ANIM_STD_HIGHIMPACT_BACK, false); } soundVolume = 0.5f; break; @@ -3146,7 +3146,7 @@ CPed::PlayFootSteps(void) if (CGeneral::GetRandomNumber() % 64) { m_vecAnimMoveDelta *= 0.2f; } else { - SetFall(0, ANIM_KO_SKID_BACK, false); + SetFall(0, ANIM_STD_HIGHIMPACT_BACK, false); } soundVolume = 0.2f; break; @@ -3944,7 +3944,7 @@ CPed::PedSetOutCarCB(CAnimBlendAssociation *animAssoc, void *arg) ped->RestorePreviousObjective(); else if (ped->m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) { ped->m_fHealth = 0.0f; - ped->SetDie(ANIM_FLOOR_HIT, 4.0f, 0.5f); + ped->SetDie(ANIM_STD_HIT_FLOOR, 4.0f, 0.5f); } ped->bInVehicle = false; @@ -4087,7 +4087,7 @@ CPed::PedSetOutCarCB(CAnimBlendAssociation *animAssoc, void *arg) ped->bOnBoat = false; if (ped->bBusJacked) { - ped->SetFall(1500, ANIM_KO_SKID_BACK, false); + ped->SetFall(1500, ANIM_STD_HIGHIMPACT_BACK, false); ped->bBusJacked = false; } ped->m_nStoredMoveState = PEDMOVE_NONE; @@ -4113,13 +4113,13 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg) CPed *ped = (CPed*)arg; uint8 exitFlags = 0; - quickJackedAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_CAR_QJACKED); + quickJackedAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_STD_QUICKJACKED); if (dragAssoc && dragAssoc->animId == ANIM_BIKE_HIT && ped->m_pMyVehicle) { if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_RF) { - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_BIKE_FALL_OFF, 100.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_BIKE_FALLOFF, 100.0f); ped->m_pMyVehicle->m_nGettingOutFlags &= ~(CAR_DOOR_FLAG_RF | CAR_DOOR_FLAG_LF); } else { - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_BIKE_FALL_R, 100.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_BIKE_FALLBACK, 100.0f); ped->m_pMyVehicle->m_nGettingOutFlags &= ~(CAR_DOOR_FLAG_RR | CAR_DOOR_FLAG_LR); } ((CBike*)ped->m_pMyVehicle)->KnockOffRider(WEAPONTYPE_UNIDENTIFIED, 0, ped, true); @@ -4163,7 +4163,7 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg) if (ped->m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) { dragAssoc->SetDeleteCallback(PedSetDraggedOutCarPositionCB, ped); ped->m_fHealth = 0.0f; - ped->SetDie(ANIM_FLOOR_HIT, 1000.0f, 0.5f); + ped->SetDie(ANIM_STD_HIT_FLOOR, 1000.0f, 0.5f); return; } @@ -4172,7 +4172,7 @@ CPed::PedSetDraggedOutCarCB(CAnimBlendAssociation *dragAssoc, void *arg) } else { dragAssoc->SetDeleteCallback(PedSetDraggedOutCarPositionCB, ped); if (ped->CanSetPedState()) - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_GETUP1, 1000.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_GET_UP, 1000.0f); } ped->ReplaceWeaponWhenExitingVehicle(); @@ -4919,7 +4919,7 @@ CPed::PreRender(void) if (Abs(speed.x) <= 0.05f && Abs(speed.y) <= 0.05f) { if (!OnGround() && m_nPedState != PED_ATTACK && m_nPedState != PED_FIGHT) { - if (!IsPedHeadAbovePos(0.3f) || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED)) { + if (!IsPedHeadAbovePos(0.3f) || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED)) { doSplashUp = false; } } else @@ -5104,11 +5104,11 @@ CPed::SetFall(int extraTime, AnimationId animId, uint8 evenIfNotInControl) SetStoredState(); SetPedState(PED_FALL); CAnimBlendAssociation *fallAssoc = nil; - if (animId == NUM_STD_ANIMS) { + if (animId == ANIM_STD_NUM) { if (IsPlayer()) { - fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLOUT_LHS); + fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROLLOUT_LHS); if (!fallAssoc) - fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLOUT_RHS); + fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROLLOUT_RHS); } } else { fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), animId); @@ -5122,7 +5122,7 @@ CPed::SetFall(int extraTime, AnimationId animId, uint8 evenIfNotInControl) else { fallAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animId, 8.0f); } - if (animId == ANIM_BIKE_FALL_R) + if (animId == ANIM_STD_BIKE_FALLBACK) fallAssoc->SetCurrentTime(0.4f); } @@ -5130,7 +5130,7 @@ CPed::SetFall(int extraTime, AnimationId animId, uint8 evenIfNotInControl) m_getUpTimer = UINT32_MAX; } else if (fallAssoc) { if (IsPlayer()) { - if (fallAssoc->animId == ANIM_CAR_ROLLOUT_LHS || fallAssoc->animId == ANIM_CAR_ROLLOUT_RHS) { + if (fallAssoc->animId == ANIM_STD_ROLLOUT_LHS || fallAssoc->animId == ANIM_STD_ROLLOUT_RHS) { m_getUpTimer = 1000.0f * fallAssoc->hierarchy->totalLength + CTimer::GetTimeInMilliseconds() - 1000.0f * fallAssoc->currentTime @@ -5174,19 +5174,19 @@ CPed::Fall(void) firstPartialAssoc = RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_PARTIAL); // What??? - if (firstPartialAssoc && (firstPartialAssoc->animId == ANIM_FALL_BACK || firstPartialAssoc->animId == ANIM_FALL_FRONT)) + if (firstPartialAssoc && (firstPartialAssoc->animId == ANIM_STD_FALL_ONBACK || firstPartialAssoc->animId == ANIM_STD_FALL_ONFRONT)) fallAssoc = firstPartialAssoc; else - fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_BACK); + fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_ONBACK); if (!fallAssoc) - fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FRONT); + fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_ONFRONT); if (!fallAssoc && firstPartialAssoc && 0.8f * firstPartialAssoc->hierarchy->totalLength < firstPartialAssoc->currentTime) { if (firstPartialAssoc->flags & ASSOC_FRONTAL) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_FRONT, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_ONFRONT, 8.0f); } else { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_BACK, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_ONBACK, 8.0f); } } else if (fallAssoc && fallAssoc->blendAmount > 0.3f && fallAssoc->blendDelta >= 0.0f) { float time = fallAssoc->currentTime; @@ -5197,10 +5197,10 @@ CPed::Fall(void) } } } else if ((bKnockedUpIntoAir || bKnockedOffBike) && bIsStanding && !bWasStanding) { - fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_BACK); + fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_ONBACK); if (!fallAssoc) - fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FRONT); + fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_ONFRONT); if (fallAssoc) { bKnockedUpIntoAir = false; @@ -5247,7 +5247,7 @@ CPed::SetInTheAir(void) return; bIsInTheAir = true; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_GLIDE, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_GLIDE, 4.0f); if (m_nPedState == PED_ATTACK) { ClearAttack(); @@ -5273,9 +5273,9 @@ CPed::InTheAir(void) if (CWorld::ProcessLineOfSight(ourPos, bitBelow, foundCol, foundEnt, true, true, false, true, false, false, false)) { if (GetPosition().z - foundCol.point.z < 1.3f || bIsStanding) SetLanding(); - } else if (m_nPedState != PED_ABSEIL && !RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FALL)) { + } else if (m_nPedState != PED_ABSEIL && !RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL)) { if (m_vecMoveSpeed.z < -0.1f) - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_FALL, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL, 4.0f); } } } @@ -5287,7 +5287,7 @@ CPed::SetLanding(void) if (DyingOrDead()) return; - CAnimBlendAssociation *fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_FALL); + CAnimBlendAssociation *fallAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL); CAnimBlendAssociation *landAssoc; if (fallAssoc && bIsDrowning) @@ -5295,7 +5295,7 @@ CPed::SetLanding(void) RpAnimBlendClumpSetBlendDeltas(GetClump(), ASSOC_PARTIAL, -1000.0f); if (fallAssoc || m_nPedType == PEDTYPE_COP && bKnockedUpIntoAir) { - landAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_COLLAPSE); + landAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_COLLAPSE); DMAudio.PlayOneShot(m_audioEntityId, SOUND_FALL_COLLAPSE, 1.0f); if (IsPlayer()) @@ -5307,7 +5307,7 @@ CPed::SetLanding(void) } } else { - landAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_FALL_LAND); + landAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FALL_LAND); DMAudio.PlayOneShot(m_audioEntityId, SOUND_FALL_LAND, 1.0f); } @@ -5355,12 +5355,12 @@ CPed::SetGetUp(void) m_pCollidingEntity = nil; bKnockedUpIntoAir = false; bKnockedOffBike = false; - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SPRINT); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNFAST); if (animAssoc) { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN)) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_RUN, 8.0f); + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUN)) { + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_RUN, 8.0f); } else { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 8.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 8.0f); } animAssoc->flags |= ASSOC_DELETEFADEDOUT; } @@ -5370,19 +5370,19 @@ CPed::SetGetUp(void) // Seemingly they planned to use different getup anims for different conditions, but sadly in final game all getup anims(GETUP1, GETUP2, GETUP3) are same... if (bFleeWhenStanding && m_threatEx) - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_GETUP1, 1000.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GET_UP, 1000.0f); else - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_GETUP1, 1000.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GET_UP, 1000.0f); } else if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_GETUP_FRONT, 1000.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GET_UP_FRONT, 1000.0f); else - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_GETUP1, 1000.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GET_UP, 1000.0f); animAssoc->SetFinishCallback(PedGetupCB, this); } else { m_fHealth = 0.0f; - SetDie(NUM_STD_ANIMS, 4.0f, 0.0f); + SetDie(ANIM_STD_NUM, 4.0f, 0.0f); } } @@ -6768,7 +6768,7 @@ CPed::SetEvasiveStep(CEntity *reason, uint8 animType) if (neededTurn <= DEGTORAD(90.0f) || veh->GetModelIndex() == MI_RCBANDIT || vehPressedHorn || animType != 0) { SetLookFlag(veh, true); if ((CGeneral::GetRandomNumber() & 1) && veh->GetModelIndex() != MI_RCBANDIT && animType == 0) { - stepAnim = ANIM_IDLE_TAXI; + stepAnim = ANIM_STD_HAILTAXI; } else { float vehDirection = CGeneral::GetRadianAngleBetweenPoints( @@ -6791,11 +6791,11 @@ CPed::SetEvasiveStep(CEntity *reason, uint8 animType) else angleToFace = vehDirection + HALFPI; - stepAnim = NUM_STD_ANIMS; + stepAnim = ANIM_STD_NUM; if (animType == 0 || animType == 1) - stepAnim = ANIM_EV_STEP; + stepAnim = ANIM_STD_EVADE_STEP; else if (animType == 2) - stepAnim = ANIM_HANDSCOWER; + stepAnim = ANIM_STD_HANDSCOWER; } if (!RpAnimBlendClumpGetAssociation(GetClump(), stepAnim)) { CAnimBlendAssociation *stepAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, stepAnim, 8.0f); @@ -6904,11 +6904,11 @@ CPed::SetEvasiveDive(CPhysical *reason, uint8 onlyRandomJump) ClearLookFlag(); ClearAimFlag(); SetLookFlag(reason, true); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HANDSUP); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HANDSUP); if (animAssoc) return; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSUP, 8.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSUP, 8.0f); animAssoc->flags &= ~ASSOC_DELETEFADEDOUT; animAssoc->SetFinishCallback(PedEvadeCB, this); SetStoredState(); @@ -6919,7 +6919,7 @@ CPed::SetEvasiveDive(CPhysical *reason, uint8 onlyRandomJump) ClearAimFlag(); SetStoredState(); SetPedState(PED_DIVE_AWAY); - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_EV_DIVE, 8.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_EVADE_DIVE, 8.0f); animAssoc->SetFinishCallback(PedEvadeCB, this); } @@ -6942,7 +6942,7 @@ CPed::PedEvadeCB(CAnimBlendAssociation* animAssoc, void* arg) if (ped->m_nPedState == PED_DIVE_AWAY || ped->m_nPedState == PED_STEP_AWAY) ped->RestorePreviousState(); - } else if (animAssoc->animId == ANIM_EV_DIVE) { + } else if (animAssoc->animId == ANIM_STD_EVADE_DIVE) { ped->bUpdateAnimHeading = true; ped->ClearLookFlag(); if (ped->m_nPedState == PED_DIVE_AWAY) { @@ -7002,7 +7002,7 @@ CPed::SetDie(AnimationId animId, float delta, float speed) } SetPedState(PED_DIE); - if (animId == NUM_STD_ANIMS) { + if (animId == ANIM_STD_NUM) { bIsPedDieAnimPlaying = false; } else { dieAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animId, delta); @@ -7024,7 +7024,7 @@ CPed::SetDie(AnimationId animId, float delta, float speed) StopNonPartialAnims(); m_bloodyFootprintCountOrDeathTime = CTimer::GetTimeInMilliseconds(); - if (!CGame::nastyGame && animId == ANIM_FLOOR_HIT) { + if (!CGame::nastyGame && animId == ANIM_STD_HIT_FLOOR) { if (dieAssoc) { dieAssoc->SetCurrentTime(dieAssoc->hierarchy->totalLength - 0.01f); dieAssoc->SetRun(); @@ -7044,7 +7044,7 @@ CPed::FinishDieAnimCB(CAnimBlendAssociation *animAssoc, void *arg) void CPed::SetDead(void) { - if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DROWN)) + if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DROWN)) bUsesCollision = false; m_fHealth = 0.0f; @@ -7121,7 +7121,7 @@ CPed::Chat(void) } if (bIsTalking) { if (CGeneral::GetRandomNumber() < 512) { - CAnimBlendAssociation *chatAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); + CAnimBlendAssociation *chatAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); if (chatAssoc) { chatAssoc->blendDelta = -4.0f; chatAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -7133,10 +7133,10 @@ CPed::Chat(void) } else { if (CGeneral::GetRandomNumber() < 20 && !RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_IDLE)) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_XPRESS_SCRATCH, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_XPRESS_SCRATCH, 4.0f); } if (!bIsTalking && !RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_IDLE)) { - CAnimBlendAssociation *chatAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_CHAT, 4.0f); + CAnimBlendAssociation *chatAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CHAT, 4.0f); float chatTime = CGeneral::GetRandomNumberInRange(0.0f, 3.0f); chatAssoc->SetCurrentTime(chatTime); @@ -7153,7 +7153,7 @@ CPed::Chat(void) void CPed::ClearChat(void) { - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -7233,7 +7233,7 @@ StartTalkingOnMobileCB(CAnimBlendAssociation* assoc, void* arg) { CPed* ped = (CPed*)arg; if (ped->m_nPedState == PED_ANSWER_MOBILE) - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_PHONE_TALK, 4.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_TALK, 4.0f); } void @@ -7254,7 +7254,7 @@ CPed::SetAnswerMobile(void) if (m_nPedState != PED_ANSWER_MOBILE && !DyingOrDead()) { SetPedState(PED_ANSWER_MOBILE); RemoveWeaponAnims(GetWeapon()->m_eWeaponType, -4.0f); - CAnimBlendAssociation *assoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_PHONE_IN, 4.0f); + CAnimBlendAssociation *assoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_IN, 4.0f); assoc->SetFinishCallback(StartTalkingOnMobileCB, this); m_lookTimer = INT32_MAX; if (m_storedWeapon == WEAPONTYPE_UNIDENTIFIED) @@ -7270,8 +7270,8 @@ CPed::ClearAnswerMobile(void) if (m_nLastPedState == PED_ANSWER_MOBILE) m_nLastPedState = PED_NONE; - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_PHONE_TALK)) { - CAnimBlendAssociation *assoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_PHONE_OUT, 8.0f); + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_PHONE_TALK)) { + CAnimBlendAssociation *assoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_OUT, 8.0f); assoc->SetFinishCallback(FinishTalkingOnMobileCB, this); } else FinishTalkingOnMobileCB(nil, this); @@ -7289,9 +7289,9 @@ CPed::AnswerMobile(void) if (!IsPedInControl()) return; - CAnimBlendAssociation *phoneInAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_PHONE_IN); - CAnimBlendAssociation *phoneOutAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_PHONE_OUT); - CAnimBlendAssociation *phoneTalkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_PHONE_TALK); + CAnimBlendAssociation *phoneInAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_PHONE_IN); + CAnimBlendAssociation *phoneOutAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_PHONE_OUT); + CAnimBlendAssociation *phoneTalkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_PHONE_TALK); if (phoneInAssoc || phoneTalkAssoc || phoneOutAssoc) { if (phoneInAssoc) { if (phoneInAssoc->currentTime >= 0.85f && !m_pWeaponModel) { @@ -7311,7 +7311,7 @@ CPed::AnswerMobile(void) } } } else { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_PHONE_TALK, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PHONE_TALK, 4.0f); } } @@ -7672,27 +7672,27 @@ CPed::SetPedPositionInCar(void) if (bChangedSeat) { if (m_pMyVehicle->IsBike()) { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_JUMPON_R) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_JUMPON_L) + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_JUMPON_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_JUMPON_RHS) || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_KICK)) { LineUpPedWithCar(LINE_UP_TO_CAR_START); return; } bChangedSeat = false; } else { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_GETIN_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_GETIN_LOW_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_CLOSEDOOR_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_CLOSEDOOR_LOW_LHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SHUFFLE_RHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LSHUFFLE_RHS) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_VAN_CLOSE_L) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_VAN_CLOSE) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_VAN_GETIN_L) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_VAN_GETIN) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_COACH_IN_L) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_COACH_IN_R) - || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_JUMPIN_LHS)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_GET_IN_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_GET_IN_LO_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_CLOSE_DOOR_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_CLOSE_DOOR_LO_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SHUFFLE_RHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SHUFFLE_LO_RHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_VAN_GET_IN_REAR_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_VAN_GET_IN_REAR_RHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_COACH_GET_IN_LHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_COACH_GET_IN_RHS) + || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_JUMP_IN_LO_LHS)) { notYet = true; } } @@ -7999,14 +7999,14 @@ CPed::ClearWaitState(void) case WAITSTATE_USE_ATM: if (CTimer::GetTimeInMilliseconds() <= m_nWaitTimer) { if (m_nWaitState == WAITSTATE_USE_ATM) { - assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATM); + assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ATM); if (assoc) assoc->blendDelta = -8.0f; if (m_attractor) GetPedAttractorManager()->DeRegisterPed(this, m_attractor); } else if (m_nWaitState == WAITSTATE_PLAYANIM_CHAT) { - assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); + assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); if (assoc) assoc->blendDelta = -8.0f; if (m_attractor) @@ -8015,17 +8015,17 @@ CPed::ClearWaitState(void) } else if (m_nWaitState == WAITSTATE_SIT_DOWN || m_nWaitState == WAITSTATE_SIT_DOWN_RVRS || m_nWaitState == WAITSTATE_SIT_IDLE || m_nWaitState == WAITSTATE_SIT_UP) { switch (m_nWaitState) { case WAITSTATE_SIT_DOWN: - assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SEAT_DOWN); + assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_SEAT_DOWN); if (assoc) assoc->blendDelta = -8.0f; break; case WAITSTATE_SIT_IDLE: - assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SEAT_IDLE); + assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_SEAT_IDLE); if (assoc) assoc->blendDelta = -8.0f; break; case WAITSTATE_SIT_UP: - assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SEAT_UP); + assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_SEAT_UP); if (assoc) assoc->blendDelta = -8.0f; break; @@ -8051,12 +8051,12 @@ CPed::ClearWaitState(void) break; } case WAITSTATE_FAST_FALL: - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_KO_SKID_FRONT)) + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HIGHIMPACT_FRONT)) SetGetUp(); break; case WAITSTATE_BOMBER: - assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BOMBER); + assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DETONATE); if (assoc) assoc->blendDelta = -8.0f; break; @@ -8074,12 +8074,12 @@ CPed::ClearWaitState(void) break; } case WAITSTATE_LANCESITTING: - assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SUNBATHE); + assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SUNBATHE_IDLE); if (assoc) assoc->blendDelta = -8.0f; break; case WAITSTATE_PLAYANIM_HANDSUP_SIMPLE: - assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HANDSUP); + assoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HANDSUP); if (assoc) assoc->blendDelta = -8.0f; break; @@ -8092,7 +8092,7 @@ CPed::ClearWaitState(void) void CPed::SetWaitState(eWaitState state, void *time) { - AnimationId waitAnim = NUM_STD_ANIMS; + AnimationId waitAnim = ANIM_STD_NUM; CAnimBlendAssociation *animAssoc; if (!IsPedInControl()) @@ -8111,10 +8111,10 @@ CPed::SetWaitState(eWaitState state, void *time) break; case WAITSTATE_CROSS_ROAD: m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 1000; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_HBHB, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_HBHB, 4.0f); break; case WAITSTATE_CROSS_ROAD_LOOK: - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ROAD_CROSS, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROADCROSS, 8.0f); if (time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; @@ -8132,7 +8132,7 @@ CPed::SetWaitState(eWaitState state, void *time) case WAITSTATE_DOUBLEBACK: m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 3500; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_HBHB, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_HBHB, 4.0f); #ifdef FIX_BUGS animAssoc->SetFinishCallback(RestoreHeadingRateCB, this); #endif @@ -8140,7 +8140,7 @@ CPed::SetWaitState(eWaitState state, void *time) case WAITSTATE_HITWALL: m_headingRate = 2.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HIT_WALL, 16.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_WALL, 16.0f); animAssoc->flags |= ASSOC_DELETEFADEDOUT; animAssoc->flags |= ASSOC_FADEOUTWHENDONE; animAssoc->SetDeleteCallback(FinishedWaitCB, this); @@ -8154,13 +8154,13 @@ CPed::SetWaitState(eWaitState state, void *time) case WAITSTATE_TURN180: m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_TURN_180, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_TURN180, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); break; case WAITSTATE_SURPRISE: m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 2000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HIT_WALL, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_WALL, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); break; case WAITSTATE_STUCK: @@ -8168,7 +8168,7 @@ CPed::SetWaitState(eWaitState state, void *time) SetMoveAnim(); m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 4.0f); #ifdef FIX_BUGS animAssoc->SetFinishCallback(RestoreHeadingRateCB, this); #endif @@ -8185,20 +8185,20 @@ CPed::SetWaitState(eWaitState state, void *time) SetMoveAnim(); m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_HBHB, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_HBHB, 4.0f); #ifdef FIX_BUGS animAssoc->SetFinishCallback(RestoreHeadingRateCB, this); #endif break; case WAITSTATE_PLAYANIM_COWER: - waitAnim = ANIM_HANDSCOWER; + waitAnim = ANIM_STD_HANDSCOWER; case WAITSTATE_PLAYANIM_HANDSUP: - if (waitAnim == NUM_STD_ANIMS) - waitAnim = ANIM_HANDSUP; + if (waitAnim == ANIM_STD_NUM) + waitAnim = ANIM_STD_HANDSUP; case WAITSTATE_PLAYANIM_HANDSCOWER: - if (waitAnim == NUM_STD_ANIMS) - waitAnim = ANIM_HANDSCOWER; + if (waitAnim == ANIM_STD_NUM) + waitAnim = ANIM_STD_HANDSCOWER; m_headingRate = 0.0f; if (time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; @@ -8209,13 +8209,13 @@ CPed::SetWaitState(eWaitState state, void *time) animAssoc->SetDeleteCallback(FinishedWaitCB, this); break; case WAITSTATE_PLAYANIM_DUCK: - waitAnim = ANIM_DUCK_DOWN; + waitAnim = ANIM_STD_DUCK_DOWN; case WAITSTATE_PLAYANIM_TAXI: - if (waitAnim == NUM_STD_ANIMS) - waitAnim = ANIM_IDLE_TAXI; + if (waitAnim == ANIM_STD_NUM) + waitAnim = ANIM_STD_HAILTAXI; case WAITSTATE_PLAYANIM_CHAT: - if (waitAnim == NUM_STD_ANIMS) - waitAnim = ANIM_IDLE_CHAT; + if (waitAnim == ANIM_STD_NUM) + waitAnim = ANIM_STD_CHAT; if (time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; else @@ -8231,23 +8231,23 @@ CPed::SetWaitState(eWaitState state, void *time) SetMoveAnim(); m_headingRate = 0.0f; m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 2500; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 4.0f); #ifdef FIX_BUGS animAssoc->SetFinishCallback(RestoreHeadingRateCB, this); #endif break; case WAITSTATE_SIT_DOWN: - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_SEAT_DOWN, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_SEAT_DOWN, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 100000; break; case WAITSTATE_SIT_UP: - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_SEAT_UP, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_SEAT_UP, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 100000; break; case WAITSTATE_SIT_IDLE: - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_SEAT_IDLE, 128.f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_SEAT_IDLE, 128.f); animAssoc->SetFinishCallback(FinishedWaitCB, this); if (time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; @@ -8255,7 +8255,7 @@ CPed::SetWaitState(eWaitState state, void *time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + CGeneral::GetRandomNumberInRange(25000, 30000); break; case WAITSTATE_USE_ATM: - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ATM, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ATM, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); if (time) m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; @@ -8264,15 +8264,15 @@ CPed::SetWaitState(eWaitState state, void *time) break; case WAITSTATE_SUN_BATHE_IDLE: m_headingRate = 0.0f; - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_SUNBATHE, ANIM_SUNBATHE, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_SUNBATHE, ANIM_SUNBATHE_IDLE, 4.0f); animAssoc->SetDeleteCallback(DeleteSunbatheIdleAnimCB, this); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + CGeneral::GetRandomNumberInRange(50000, 100000); break; case WAITSTATE_FAST_FALL: - SetFall(-1, ANIM_KO_SKID_FRONT, true); + SetFall(-1, ANIM_STD_HIGHIMPACT_FRONT, true); break; case WAITSTATE_BOMBER: - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_BOMBER, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_DETONATE, 4.0f); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + *(int*)time; break; case WAITSTATE_GROUND_ATTACK: @@ -8291,10 +8291,10 @@ CPed::SetWaitState(eWaitState state, void *time) break; } case WAITSTATE_LANCESITTING: - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_LANCE, ANIM_SUNBATHE, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_LANCE, ANIM_SUNBATHE_IDLE, 4.0f); break; case WAITSTATE_PLAYANIM_HANDSUP_SIMPLE: - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSUP, 4.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSUP, 4.0f); animAssoc->flags &= ~ASSOC_FADEOUTWHENDONE; animAssoc->flags |= ASSOC_DELETEFADEDOUT; animAssoc->SetDeleteCallback(FinishedWaitCB, this); @@ -8311,7 +8311,7 @@ CPed::SetWaitState(eWaitState state, void *time) void CPed::Wait(void) { - AnimationId mustHaveAnim = NUM_STD_ANIMS; + AnimationId mustHaveAnim = ANIM_STD_NUM; CAnimBlendAssociation *animAssoc; CPed *pedWeLook; @@ -8339,7 +8339,7 @@ CPed::Wait(void) else SetWaitState(WAITSTATE_CROSS_ROAD_LOOK, nil); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_HBHB); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_HBHB); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -8350,7 +8350,7 @@ CPed::Wait(void) case WAITSTATE_CROSS_ROAD_LOOK: if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { ClearWaitState(); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -8363,7 +8363,7 @@ CPed::Wait(void) uint32 timeLeft = m_nWaitTimer - CTimer::GetTimeInMilliseconds(); if (timeLeft < 2500 && timeLeft > 2000) { m_nWaitTimer -= 500; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_XPRESS_SCRATCH, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_XPRESS_SCRATCH, 4.0f); } } else { ClearWaitState(); @@ -8396,8 +8396,8 @@ CPed::Wait(void) case WAITSTATE_SURPRISE: if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_HIT_WALL)) { - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_XPRESS_SCRATCH, 4.0f); + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HIT_WALL)) { + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_XPRESS_SCRATCH, 4.0f); animAssoc->SetFinishCallback(FinishedWaitCB, this); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 5000; } else { @@ -8410,14 +8410,14 @@ CPed::Wait(void) if (CTimer::GetTimeInMilliseconds() <= m_nWaitTimer) break; - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_TURN_180); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_TURN180); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_XPRESS_SCRATCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_XPRESS_SCRATCH); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); if (animAssoc) { if (animAssoc->IsPartial()) { @@ -8425,10 +8425,10 @@ CPed::Wait(void) animAssoc->flags |= ASSOC_DELETEFADEDOUT; } else { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); } - if (animAssoc->animId == ANIM_TURN_180) { + if (animAssoc->animId == ANIM_STD_TURN180) { m_fRotationCur = CGeneral::LimitRadianAngle(PI + m_fRotationCur); ClearWaitState(); SetMoveState(PEDMOVE_WALK); @@ -8442,16 +8442,16 @@ CPed::Wait(void) switch (CGeneral::GetRandomNumber() & 3) { case 0: - animToPlay = ANIM_ROAD_CROSS; + animToPlay = ANIM_STD_ROADCROSS; break; case 1: - animToPlay = ANIM_IDLE_TIRED; + animToPlay = ANIM_STD_IDLE_TIRED; break; case 2: - animToPlay = ANIM_XPRESS_SCRATCH; + animToPlay = ANIM_STD_XPRESS_SCRATCH; break; case 3: - animToPlay = ANIM_TURN_180; + animToPlay = ANIM_STD_TURN180; break; default: break; @@ -8459,7 +8459,7 @@ CPed::Wait(void) animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animToPlay, 4.0f); - if (animToPlay == ANIM_TURN_180) + if (animToPlay == ANIM_STD_TURN180) animAssoc->SetFinishCallback(FinishedWaitCB, this); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + CGeneral::GetRandomNumberInRange(1500, 5000); @@ -8468,7 +8468,7 @@ CPed::Wait(void) case WAITSTATE_LOOK_ABOUT: if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { ClearWaitState(); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_HBHB); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_HBHB); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -8477,11 +8477,11 @@ CPed::Wait(void) break; case WAITSTATE_PLAYANIM_HANDSUP: - mustHaveAnim = ANIM_HANDSUP; + mustHaveAnim = ANIM_STD_HANDSUP; case WAITSTATE_PLAYANIM_HANDSCOWER: - if (mustHaveAnim == NUM_STD_ANIMS) - mustHaveAnim = ANIM_HANDSCOWER; + if (mustHaveAnim == ANIM_STD_NUM) + mustHaveAnim = ANIM_STD_HANDSCOWER; animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), mustHaveAnim); pedWeLook = (CPed*) m_pLookTarget; @@ -8549,19 +8549,19 @@ CPed::Wait(void) } break; case WAITSTATE_PLAYANIM_COWER: - mustHaveAnim = ANIM_HANDSCOWER; + mustHaveAnim = ANIM_STD_HANDSCOWER; case WAITSTATE_PLAYANIM_DUCK: - if (mustHaveAnim == NUM_STD_ANIMS) - mustHaveAnim = ANIM_DUCK_DOWN; + if (mustHaveAnim == ANIM_STD_NUM) + mustHaveAnim = ANIM_STD_DUCK_DOWN; case WAITSTATE_PLAYANIM_TAXI: - if (mustHaveAnim == NUM_STD_ANIMS) - mustHaveAnim = ANIM_IDLE_TAXI; + if (mustHaveAnim == ANIM_STD_NUM) + mustHaveAnim = ANIM_STD_HAILTAXI; case WAITSTATE_PLAYANIM_CHAT: - if (mustHaveAnim == NUM_STD_ANIMS) - mustHaveAnim = ANIM_IDLE_CHAT; + if (mustHaveAnim == ANIM_STD_NUM) + mustHaveAnim = ANIM_STD_CHAT; if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), mustHaveAnim); @@ -8589,11 +8589,11 @@ CPed::Wait(void) break; case WAITSTATE_FINISH_FLEE: - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); if (animAssoc) { if (CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); int timer = 2000; ClearWaitState(); SetWaitState(WAITSTATE_CROSS_ROAD_LOOK, &timer); @@ -8716,7 +8716,7 @@ CPed::Wait(void) break; } - PlayRandomAnimationsFromAnimBlock(this, ASSOCGRP_RIOT, ANIM_RIOT_ANGRY, ANIM_RIOT_FUKU - ANIM_RIOT_ANGRY + 1); + PlayRandomAnimationsFromAnimBlock(this, ASSOCGRP_RIOT, ANIM_RIOT_ANGRY, ANIM_RIOT_FUCKYOU - ANIM_RIOT_ANGRY + 1); if (IsPedInControl() && CGeneral::GetRandomNumberInRange(0.f,1.f) < 0.25f && CPopulation::CanJeerAtStripper(m_modelIndex)) { for (int i = 0; i < m_numNearPeds; ++i) { @@ -8832,7 +8832,7 @@ CPed::SetSolicit(uint32 time) m_chatTimer = CTimer::GetTimeInMilliseconds() + time; if(!m_carInObjective->bIsVan && !m_carInObjective->bIsBus) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_HOOKERTALK, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_HOOKERTALK, 4.0f); SetPedState(PED_SOLICIT); } @@ -8863,7 +8863,7 @@ CPed::Solicit(void) if ((GetPosition() - doorPos).MagnitudeSqr() <= 1.0f) return; - CAnimBlendAssociation *talkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_HOOKERTALK); + CAnimBlendAssociation *talkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_HOOKERTALK); if (talkAssoc) { talkAssoc->blendDelta = -1000.0f; talkAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -9093,12 +9093,12 @@ CPed::CanPedJumpThis(CEntity *unused, CVector *damageNormal) void CPed::SetJump(void) { - if (!bInVehicle && m_nPedState != PED_JUMP && !RpAnimBlendClumpGetAssociation(GetClump(), ANIM_JUMP_LAUNCH) && + if (!bInVehicle && m_nPedState != PED_JUMP && !RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_JUMP_LAUNCH) && (m_nSurfaceTouched != SURFACE_STEEP_CLIFF || DotProduct(GetForward(), m_vecDamageNormal) >= 0.0f)) { SetStoredState(); SetPedState(PED_JUMP); - CAnimBlendAssociation *jumpAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_JUMP_LAUNCH, 8.0f); + CAnimBlendAssociation *jumpAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_JUMP_LAUNCH, 8.0f); jumpAssoc->SetFinishCallback(FinishLaunchCB, this); m_fRotationDest = m_fRotationCur; } @@ -9128,7 +9128,7 @@ CPed::FinishLaunchCB(CAnimBlendAssociation *animAssoc, void *arg) if (obstacle) { animAssoc->flags |= ASSOC_DELETEFADEDOUT; - CAnimBlendAssociation *handsCoverAssoc = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_HIT_WALL, 8.0f); + CAnimBlendAssociation *handsCoverAssoc = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_WALL, 8.0f); handsCoverAssoc->flags &= ~ASSOC_FADEOUTWHENDONE; handsCoverAssoc->SetFinishCallback(FinishHitHeadCB, ped); ped->bIsLanding = true; @@ -9136,12 +9136,12 @@ CPed::FinishLaunchCB(CAnimBlendAssociation *animAssoc, void *arg) } float velocityFromAnim = 0.1f; - CAnimBlendAssociation *sprintAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_SPRINT); + CAnimBlendAssociation *sprintAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_STD_RUNFAST); if (sprintAssoc) { velocityFromAnim = 0.05f * sprintAssoc->blendAmount + 0.17f; } else { - CAnimBlendAssociation *runAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_RUN); + CAnimBlendAssociation *runAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_STD_RUN); if (runAssoc) { velocityFromAnim = 0.07f * runAssoc->blendAmount + 0.1f; } @@ -9176,7 +9176,7 @@ CPed::FinishLaunchCB(CAnimBlendAssociation *animAssoc, void *arg) ped->bIsStanding = false; ped->bIsInTheAir = true; animAssoc->blendDelta = -1000.0f; - CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_JUMP_GLIDE); + CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_JUMP_GLIDE); if (ped->bDoBloodyFootprints) { CVector bloodPos(0.0f, 0.0f, 0.0f); @@ -9391,7 +9391,7 @@ CPed::AttachPedToEntity(CEntity *ent, CVector offset, uint16 type, float rot, eW } SetStoredState(); SetPedState(PED_IDLE); - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 1000.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 1000.0f); if (m_storedWeapon == WEAPONTYPE_UNIDENTIFIED) { m_storedWeapon = GetWeapon()->m_eWeaponType; @@ -9426,7 +9426,7 @@ CPed::DettachPedFromEntity(void) bIsStanding = false; } else if (m_nPedState != PED_DEAD) { RestorePreviousState(); - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 1000.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 1000.0f); bUsesCollision = true; if (m_storedWeapon != WEAPONTYPE_UNIDENTIFIED) { GetWeapon()->m_nAmmoInClip = 0; @@ -9493,7 +9493,7 @@ void CPed::Undress(const char* name) { int mi = GetModelIndex(); - CAnimBlendAssociation* pAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_PHONE_OUT); + CAnimBlendAssociation* pAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_PHONE_OUT); if (pAnim) FinishTalkingOnMobileCB(pAnim, this); diff --git a/src/peds/Ped.h b/src/peds/Ped.h index 8b091d15..ac776469 100644 --- a/src/peds/Ped.h +++ b/src/peds/Ped.h @@ -679,7 +679,7 @@ public: void SetLookFlag(CEntity* target, bool keepTryingToLook, bool cancelPrevious = false); void SetLookFlag(float direction, bool keepTryingToLook, bool cancelPrevious = false); void SetLookTimer(int time); - void SetDie(AnimationId anim = ANIM_KO_SHOT_FRONT1, float arg1 = 4.0f, float arg2 = 0.0f); + void SetDie(AnimationId anim = ANIM_STD_KO_FRONT, float arg1 = 4.0f, float arg2 = 0.0f); void SetDead(void); void ApplyHeadShot(eWeaponType weaponType, CVector pos, bool evenOnPlayer); void RemoveBodyPart(PedNode nodeId, int8 direction); @@ -1015,74 +1015,74 @@ public: static AnimationId Get3rdFireAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_COP3_RD)) - return ANIM_WEAPON_FIRE_3RD; + return ANIM_ATTACK_3; else return (AnimationId)0; } static AnimationId GetFireAnimGround(CWeaponInfo* weapon, bool kickFloorIfNone = true) { if (weapon->IsFlagSet(WEAPONFLAG_GROUND_2ND)) - return ANIM_WEAPON_CROUCHFIRE; + return ANIM_ATTACK_2; else if (weapon->IsFlagSet(WEAPONFLAG_GROUND_3RD)) - return ANIM_WEAPON_FIRE_3RD; + return ANIM_ATTACK_3; else if (kickFloorIfNone) - return ANIM_KICK_FLOOR; + return ANIM_STD_KICKGROUND; else return (AnimationId)0; } static AnimationId GetPrimaryFireAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_ANIMDETONATE)) - return ANIM_BOMBER; + return ANIM_STD_DETONATE; else - return ANIM_WEAPON_FIRE; + return ANIM_ATTACK_1; } static AnimationId GetCrouchReloadAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_RELOAD)) - return ANIM_WEAPON_CROUCHRELOAD; + return ANIM_ATTACK_EXTRA2; else return (AnimationId)0; } static AnimationId GetCrouchFireAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) - return ANIM_WEAPON_CROUCHFIRE; + return ANIM_ATTACK_2; else return (AnimationId)0; } static AnimationId GetReloadAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_RELOAD)) - return ANIM_WEAPON_RELOAD; + return ANIM_ATTACK_EXTRA1; else return (AnimationId)0; } static AnimationId GetFightIdleWithMeleeAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_FIGHTMODE)) - return ANIM_MELEE_IDLE_FIGHTMODE; + return ANIM_ATTACK_EXTRA2; else return (AnimationId)0; } static AnimationId GetFinishingAttackAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_FINISH_3RD)) - return ANIM_MELEE_ATTACK_FINISH; + return ANIM_ATTACK_3; else return (AnimationId)0; } static AnimationId GetSecondFireAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_USE_2ND)) - return ANIM_WEAPON_FIRE_2ND; // or ANIM_MELEE_ATTACK_2ND + return ANIM_ATTACK_2; // or ANIM_MELEE_ATTACK_2ND else return (AnimationId)0; } static AnimationId GetMeleeStartAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_PARTIALATTACK)) - return ANIM_MELEE_ATTACK_START; + return ANIM_ATTACK_EXTRA1; else return (AnimationId)0; } @@ -1090,7 +1090,7 @@ public: static AnimationId GetThrowAnim(CWeaponInfo *weapon) { if (weapon->IsFlagSet(WEAPONFLAG_THROW)) - return ANIM_THROWABLE_START_THROW; + return ANIM_ATTACK_EXTRA1; else return (AnimationId)0; } diff --git a/src/peds/PedAI.cpp b/src/peds/PedAI.cpp index 9802f968..cd8b06fa 100644 --- a/src/peds/PedAI.cpp +++ b/src/peds/PedAI.cpp @@ -1455,9 +1455,9 @@ CPed::ProcessObjective(void) } break; case OBJECTIVE_HAIL_TAXI: - if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TAXI) && CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { + if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_HAILTAXI) && CTimer::GetTimeInMilliseconds() > m_nWaitTimer) { Say(SOUND_PED_TAXI_WAIT); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TAXI, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HAILTAXI, 4.0f); m_nWaitTimer = CTimer::GetTimeInMilliseconds() + 2000; } break; @@ -1562,7 +1562,7 @@ CPed::ProcessObjective(void) float distWithTargetScSqr = distWithTarget.MagnitudeSqr(); if (distWithTargetScSqr <= sq(10.0f)) { if (distWithTargetScSqr <= sq(1.4f)) { - CAnimBlendAssociation *reloadAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FUCKU); + CAnimBlendAssociation *reloadAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_PARTIAL_FUCKU); m_fRotationDest = CGeneral::GetRadianAngleBetweenPoints( m_pedInObjective->GetPosition().x, m_pedInObjective->GetPosition().y, GetPosition().x, GetPosition().y); @@ -1570,7 +1570,7 @@ CPed::ProcessObjective(void) if (reloadAssoc || !m_pedInObjective->IsPedShootable()) { if (reloadAssoc && (!reloadAssoc->IsRunning() || reloadAssoc->GetProgress() > 0.8f)) { - CAnimBlendAssociation *punchAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_PPUNCH, 8.0f); + CAnimBlendAssociation *punchAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PARTIAL_PUNCH, 8.0f); punchAssoc->flags |= ASSOC_DELETEFADEDOUT; punchAssoc->flags |= ASSOC_FADEOUTWHENDONE; CVector2D offset(distWithTarget.x, distWithTarget.y); @@ -1599,13 +1599,13 @@ CPed::ProcessObjective(void) if (weaponType != WEAPONTYPE_UNARMED && weaponType != WEAPONTYPE_BASEBALLBAT) SetCurrentWeapon(WEAPONTYPE_UNARMED); - CAnimBlendAssociation *newReloadAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FUCKU, 8.0f); + CAnimBlendAssociation *newReloadAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PARTIAL_FUCKU, 8.0f); newReloadAssoc->flags |= ASSOC_DELETEFADEDOUT; newReloadAssoc->flags |= ASSOC_FADEOUTWHENDONE; } } else { SetSeek(m_pedInObjective, 1.0f); - CAnimBlendAssociation *walkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK); + CAnimBlendAssociation *walkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_WALK); if (walkAssoc) walkAssoc->speed = 1.3f; @@ -2234,7 +2234,7 @@ CPed::ReactToAttack(CEntity *attacker) if (m_nPedType == PEDTYPE_GANG7 && attacker->IsPed() && ((CPed*)attacker)->IsPlayer()) { if (m_nPedState != PED_FALL) { - SetFall(15000, (AnimationId)(ANIM_KO_SHOT_FRONT1 + CGeneral::GetRandomNumberInRange(0, 5)), 0); + SetFall(15000, (AnimationId)(ANIM_STD_KO_FRONT + CGeneral::GetRandomNumberInRange(0, 5)), 0); } } else if (m_nPedState == PED_DRIVING && InVehicle() @@ -2357,21 +2357,21 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) } else if (veh->GetRight().z >= 0.5f || veh->GetRight().z <= -0.5f || veh->GetUp().z <= 0.0f) { if (enterDoor == DOOR_FRONT_LEFT || enterDoor == DOOR_REAR_LEFT) { if (veh->GetRight().z > 0.0f) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_BIKE_PICKUP_R); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_BIKE_PICKUP_LHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_BIKE_PULLUP_R); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_BIKE_PULLUP_LHS); } else { if (veh->GetRight().z < 0.0f) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_BIKE_PICKUP_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_BIKE_PICKUP_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_BIKE_PULLUP_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_BIKE_PULLUP_RHS); } ped->m_pVehicleAnim->SetFinishCallback(PedAnimDoorOpenCB, ped); } else { ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, - enterDoor == DOOR_FRONT_LEFT || enterDoor == DOOR_REAR_LEFT ? ANIM_BIKE_JUMPON_R : ANIM_BIKE_JUMPON_L); + enterDoor == DOOR_FRONT_LEFT || enterDoor == DOOR_REAR_LEFT ? ANIM_BIKE_JUMPON_LHS : ANIM_BIKE_JUMPON_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); ((CBike*)veh)->bIsBeingPickedUp = true; } @@ -2389,20 +2389,20 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) if (veh->pDriver) { if (veh->m_vecMoveSpeed.Magnitude() > 0.2f) { ped->QuitEnteringCar(); - ped->SetFall(1000, ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR ? ANIM_KO_SPIN_L : ANIM_KO_SPIN_R, false); + ped->SetFall(1000, ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR ? ANIM_STD_HIGHIMPACT_RIGHT : ANIM_STD_HIGHIMPACT_LEFT, false); return; } if (veh->pDriver->m_nPedState != PED_DRIVING || veh->pDriver->bDontDragMeOutCar) { ped->QuitEnteringCar(); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, enterDoor == DOOR_FRONT_LEFT ? ANIM_BIKE_ELBOW_R : ANIM_BIKE_ELBOW_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, enterDoor == DOOR_FRONT_LEFT ? ANIM_STD_BIKE_ELBOW_LHS : ANIM_STD_BIKE_ELBOW_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimPullPedOutCB, ped); pedToDragOut = veh->pDriver; } ((CBike*)veh)->bIsBeingPickedUp = true; } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, enterDoor == DOOR_FRONT_LEFT ? ANIM_BIKE_JUMPON_R : ANIM_BIKE_JUMPON_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, enterDoor == DOOR_FRONT_LEFT ? ANIM_BIKE_JUMPON_LHS : ANIM_BIKE_JUMPON_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); ((CBike*)veh)->bIsBeingPickedUp = true; } @@ -2410,14 +2410,14 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) if (veh->pPassengers[0]) { if (veh->m_vecMoveSpeed.Magnitude() > 0.2f) { ped->QuitEnteringCar(); - ped->SetFall(1000, ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR ? ANIM_KO_SPIN_L : ANIM_KO_SPIN_R, false); + ped->SetFall(1000, ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR ? ANIM_STD_HIGHIMPACT_RIGHT : ANIM_STD_HIGHIMPACT_LEFT, false); return; } if (veh->pPassengers[0]->m_nPedState != PED_DRIVING || veh->pPassengers[0]->bDontDragMeOutCar) { ped->QuitEnteringCar(); } else { ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, - enterDoor == DOOR_REAR_LEFT ? ANIM_BIKE_ELBOW_R : ANIM_BIKE_ELBOW_L); + enterDoor == DOOR_REAR_LEFT ? ANIM_STD_BIKE_ELBOW_LHS : ANIM_STD_BIKE_ELBOW_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimPullPedOutCB, ped); pedToDragOut = veh->pPassengers[0]; } @@ -2425,7 +2425,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) } else { ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), - ((CBike*)veh)->m_bikeAnimType, enterDoor == DOOR_REAR_LEFT ? ANIM_BIKE_JUMPON_R : ANIM_BIKE_JUMPON_L); + ((CBike*)veh)->m_bikeAnimType, enterDoor == DOOR_REAR_LEFT ? ANIM_BIKE_JUMPON_LHS : ANIM_BIKE_JUMPON_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); ((CBike*)veh)->bIsBeingPickedUp = true; } @@ -2457,22 +2457,22 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) } if (enterDoor != DOOR_FRONT_LEFT && enterDoor != DOOR_REAR_LEFT) { if (itsVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_VAN_GETIN); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_GET_IN_REAR_RHS); } else if (itsBus) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_COACH_IN_R); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_STD_COACH_GET_IN_RHS); } else if (itsLow) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_RHS); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_RHS); } } else if (itsVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_VAN_GETIN_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_GET_IN_REAR_LHS); } else if (itsBus) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_COACH_IN_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_STD_COACH_GET_IN_LHS); } else if (itsLow) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_LHS); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LHS); } ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); @@ -2481,16 +2481,16 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) veh->AutoPilot.m_nCruiseSpeed = 0; if (enterDoor != DOOR_FRONT_LEFT && enterDoor != DOOR_REAR_LEFT) { if (itsVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_VAN_OPEN); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_OPEN_DOOR_REAR_RHS); } else if (itsBus) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_COACH_OPEN_R); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_STD_COACH_OPEN_RHS); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_OPEN_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_OPEN_DOOR_RHS); } } else if (itsVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_VAN_OPEN_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_OPEN_DOOR_REAR_LHS); } else if (itsBus) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_COACH_OPEN_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_STD_COACH_OPEN_LHS); } else { if (ped->m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER && veh->pDriver) { @@ -2499,7 +2499,7 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) && veh->pDriver->CharCreatedBy != MISSION_CHAR && veh->pDriver->m_nPedState == PED_DRIVING) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_QJACK); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_QUICKJACK); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); CPlayerPed *player = nil; @@ -2519,19 +2519,19 @@ CPed::PedAnimAlignCB(CAnimBlendAssociation *animAssoc, void *arg) } } if (veh->IsOpenTopCar() && !veh->pDriver && ped->m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_JUMPIN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_JUMP_IN_LO_LHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); return; } - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_OPEN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_OPEN_DOOR_LHS); } ped->m_pVehicleAnim->SetFinishCallback(PedAnimDoorOpenCB, ped); } else { if (enterDoor != DOOR_FRONT_LEFT && enterDoor != DOOR_REAR_LEFT) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_DOORLOCKED_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CARDOOR_LOCKED_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_DOORLOCKED_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CARDOOR_LOCKED_LHS); ped->bCancelEnteringCar = true; ped->m_pVehicleAnim->SetFinishCallback(PedAnimDoorOpenCB, ped); @@ -2619,13 +2619,13 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) veh->IsCar() && veh->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI && ((CAutomobile*)veh)->m_nWheelsOnGround == 0) { ped->QuitEnteringCar(); if (ped->m_vehDoor != CAR_DOOR_LF && ped->m_vehDoor != CAR_DOOR_LR) - ped->SetFall(1000, ANIM_KO_SPIN_R, false); + ped->SetFall(1000, ANIM_STD_HIGHIMPACT_LEFT, false); else - ped->SetFall(1000, ANIM_KO_SPIN_L, false); + ped->SetFall(1000, ANIM_STD_HIGHIMPACT_RIGHT, false); return; } - veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_OPEN_LHS, 1.0f); + veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_STD_CAR_OPEN_DOOR_LHS, 1.0f); if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_RF) isVan = false; @@ -2634,27 +2634,27 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR) { if (veh->IsBike()) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_R); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_LHS); } else if (isVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_VAN_GETIN_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_GET_IN_REAR_LHS); } else if (isBus) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_COACH_IN_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_STD_COACH_GET_IN_LHS); } else if (isLow) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_LHS); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LHS); } } else { if (veh->IsBike()) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_RHS); } else if (isVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_VAN_GETIN); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_GET_IN_REAR_RHS); } else if (isBus) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_COACH_IN_R); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_COACH, ANIM_STD_COACH_GET_IN_RHS); } else if (isLow) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_RHS); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_RHS); } if (ped->m_vehDoor == CAR_DOOR_RF && pedInSeat && veh->IsCar()) @@ -2686,9 +2686,9 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) pedToDragOut = nil; } else { if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_PULLOUT_LOW_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_PULL_OUT_PED_LO_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_PULLOUT_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_PULL_OUT_PED_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimPullPedOutCB, ped); } @@ -2709,9 +2709,9 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) } } else { if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); } @@ -2722,17 +2722,17 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg) pedToDragOut = nil; } else { if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_PULLOUT_LOW_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_PULL_OUT_PED_LO_LHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_PULLOUT_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_PULL_OUT_PED_LHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimPullPedOutCB, ped); } } else { if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_LHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LHS); ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); } @@ -2820,18 +2820,18 @@ CPed::PedAnimPullPedOutCB(CAnimBlendAssociation* animAssoc, void* arg) if (ped->m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER) { if (ped->m_vehDoor == CAR_DOOR_LF || ped->m_vehDoor == CAR_DOOR_LR) { if (veh->IsBike()) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_R); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_LHS); else if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_LHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LHS); } else { if (veh->IsBike()) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ((CBike*)veh)->m_bikeAnimType, ANIM_BIKE_JUMPON_RHS); else if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_GETIN_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_RHS); } ped->m_pVehicleAnim->SetFinishCallback(PedAnimGetInCB, ped); } else { @@ -2878,7 +2878,7 @@ CPed::PedAnimGetInCB(CAnimBlendAssociation *animAssoc, void *arg) && (Pads[0].GetAccelerate() >= 255.0f || Pads[0].GetBrake() >= 255.0f) && veh->IsCar() && !veh->pDriver) { - if (!animAssoc || animAssoc->animId != ANIM_CAR_JUMPIN_LHS) + if (!animAssoc || animAssoc->animId != ANIM_STD_CAR_JUMP_IN_LO_LHS) if (((CAutomobile*)veh)->Damage.GetDoorStatus(DOOR_FRONT_LEFT) != DOOR_STATUS_MISSING) ((CAutomobile*)veh)->Damage.SetDoorStatus(DOOR_FRONT_LEFT, DOOR_STATUS_SWINGING); @@ -2974,18 +2974,18 @@ CPed::PedAnimGetInCB(CAnimBlendAssociation *animAssoc, void *arg) } else { if (enterDoor != DOOR_FRONT_LEFT && enterDoor != DOOR_REAR_LEFT) { if (isVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_VAN_CLOSE); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS); } else if (isLow) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSEDOOR_LOW_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_DOOR_LO_RHS); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSEDOOR_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_DOOR_RHS); } } else if (isVan) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_VAN_CLOSE_L); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS); } else if (isLow) { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSEDOOR_LOW_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_DOOR_LO_LHS); } else { - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSEDOOR_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_DOOR_LHS); } ped->m_pVehicleAnim->SetFinishCallback(PedAnimDoorCloseCB, ped); } @@ -2997,7 +2997,7 @@ CPed::PedShuffle(void) if (m_pMyVehicle->pPassengers[0] == this) { CPed *driver = m_pMyVehicle->pDriver; if (!driver || driver->m_objective == OBJECTIVE_LEAVE_CAR) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, m_pMyVehicle->bLowVehicle ? ANIM_CAR_LSHUFFLE_RHS : ANIM_CAR_SHUFFLE_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, m_pMyVehicle->bLowVehicle ? ANIM_STD_CAR_SHUFFLE_LO_RHS : ANIM_STD_CAR_SHUFFLE_RHS); m_objective = OBJECTIVE_ENTER_CAR_AS_DRIVER; m_pMyVehicle->RemovePassenger(this); bInVehicle = false; @@ -3020,7 +3020,7 @@ CPed::PedAnimDoorCloseCB(CAnimBlendAssociation *animAssoc, void *arg) bool isLow = !!veh->bLowVehicle; if (!veh->bIsBus) - veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_CLOSEDOOR_LHS, 1.0f); + veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_STD_CAR_CLOSE_DOOR_LHS, 1.0f); eDoors door; switch (ped->m_vehDoor) { @@ -3061,9 +3061,9 @@ CPed::PedAnimDoorCloseCB(CAnimBlendAssociation *animAssoc, void *arg) animAssoc->blendDelta = -1000.0f; if (isLow) - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_LSHUFFLE_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SHUFFLE_LO_RHS); else - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_SHUFFLE_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SHUFFLE_RHS); ped->m_pVehicleAnim->SetFinishCallback(PedSetInCarCB, ped); } @@ -3161,7 +3161,7 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg) CVehicle* veh = ped->m_pMyVehicle; if (animAssoc) { - if ((animAssoc->animId == ANIM_CAR_ROLLOUT_LHS || animAssoc->animId == ANIM_CAR_ROLLOUT_RHS) && ped && ped->m_nPedState == PED_FALL) { + if ((animAssoc->animId == ANIM_STD_ROLLOUT_LHS || animAssoc->animId == ANIM_STD_ROLLOUT_RHS) && ped && ped->m_nPedState == PED_FALL) { ped->RestoreHeadingRate(); return; } @@ -3185,7 +3185,7 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg) veh->m_vecMoveSpeed += CVector(0.001f, 0.001f, 0.001f); veh->m_vecTurnSpeed += CVector(0.001f, 0.001f, 0.001f); if (!veh->bIsBus) - veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_CAR_GETOUT_LHS, 1.0f); + veh->ProcessOpenDoor(ped->m_vehDoor, ANIM_STD_GETOUT_LHS, 1.0f); /* // Duplicate and only in PC for some reason @@ -3272,16 +3272,16 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg) } else { switch (door) { case DOOR_FRONT_LEFT: - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSE_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_LHS); break; case DOOR_FRONT_RIGHT: - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSE_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_RHS); break; case DOOR_REAR_LEFT: - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSE_LHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_LHS); break; case DOOR_REAR_RIGHT: - ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_CLOSE_RHS); + ped->m_pVehicleAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_RHS); break; default: break; @@ -3310,24 +3310,24 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) if (!bChangedSeat && phase != LINE_UP_TO_CAR_2) { if (m_pMyVehicle->IsBike()) { if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_RIDE) || - RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_PASSENGER)) { + RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_RIDE_P)) { SetPedPositionInCar(); return; } } else { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SIT)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT)) { SetPedPositionInCar(); return; } - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LSIT)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_LO)) { SetPedPositionInCar(); return; } - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SITP)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_P)) { SetPedPositionInCar(); return; } - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SITPLO)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_P_LO)) { SetPedPositionInCar(); return; } @@ -3338,7 +3338,7 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) SetPedPositionInCar(); autoZPos = GetPosition(); CPedPlacement::FindZCoorForPed(&autoZPos); - if (m_pVehicleAnim && (m_pVehicleAnim->animId == ANIM_CAR_ROLLOUT_LHS || m_pVehicleAnim->animId == ANIM_CAR_ROLLOUT_RHS) + if (m_pVehicleAnim && (m_pVehicleAnim->animId == ANIM_STD_ROLLOUT_LHS || m_pVehicleAnim->animId == ANIM_STD_ROLLOUT_RHS) && autoZPos.z > GetPosition().z) { m_matrix.GetPosition().z = autoZPos.z; } @@ -3401,21 +3401,21 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) vehAnim = m_pVehicleAnim->animId; switch (vehAnim) { - case ANIM_CAR_JACKED_RHS: - case ANIM_CAR_LJACKED_RHS: - case ANIM_CAR_JACKED_LHS: - case ANIM_CAR_LJACKED_LHS: - case ANIM_VAN_GETIN_L: - case ANIM_VAN_GETIN: + case ANIM_STD_JACKEDCAR_RHS: + case ANIM_STD_JACKEDCAR_LO_RHS: + case ANIM_STD_JACKEDCAR_LHS: + case ANIM_STD_JACKEDCAR_LO_LHS: + case ANIM_STD_VAN_GET_IN_REAR_LHS: + case ANIM_STD_VAN_GET_IN_REAR_RHS: multExtractedFromAnim = true; zBlend = Max(m_pVehicleAnim->GetProgress() - 0.3f, 0.0f) / (1.0f - 0.3f); // fall through - case ANIM_CAR_QJACKED: - case ANIM_CAR_GETOUT_LHS: - case ANIM_CAR_GETOUT_LOW_LHS: - case ANIM_CAR_GETOUT_RHS: - case ANIM_CAR_GETOUT_LOW_RHS: + case ANIM_STD_QUICKJACKED: + case ANIM_STD_GETOUT_LHS: + case ANIM_STD_GETOUT_LO_LHS: + case ANIM_STD_GETOUT_RHS: + case ANIM_STD_GETOUT_LO_RHS: if (!multExtractedFromAnim) { multExtractedFromAnim = true; @@ -3423,49 +3423,49 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) } // fall through - case ANIM_CAR_CRAWLOUT_RHS: - case ANIM_CAR_CRAWLOUT_RHS2: - case ANIM_VAN_GETOUT_L: - case ANIM_VAN_GETOUT: - case ANIM_BIKE_GETOFF_RHS: + case ANIM_STD_CRAWLOUT_LHS: + case ANIM_STD_CRAWLOUT_RHS: + case ANIM_STD_VAN_GET_OUT_REAR_LHS: + case ANIM_STD_VAN_GET_OUT_REAR_RHS: case ANIM_BIKE_GETOFF_LHS: + case ANIM_BIKE_GETOFF_RHS: seatPosMult = m_pVehicleAnim->GetProgress(); break; - case ANIM_CAR_GETIN_RHS: - case ANIM_CAR_GETIN_LHS: + case ANIM_STD_CAR_GET_IN_RHS: + case ANIM_STD_CAR_GET_IN_LHS: if (veh && veh->IsCar() && veh->bIsBus) { multExtractedFromAnimBus = true; zBlend = Min(m_pVehicleAnim->GetProgress(), 0.5f) / 0.5f; } // fall through - case ANIM_CAR_QJACK: - case ANIM_CAR_GETIN_LOW_LHS: - case ANIM_CAR_GETIN_LOW_RHS: - case ANIM_DRIVE_BOAT: + case ANIM_STD_QUICKJACK: + case ANIM_STD_CAR_GET_IN_LO_LHS: + case ANIM_STD_CAR_GET_IN_LO_RHS: + case ANIM_STD_BOAT_DRIVE: seatPosMult = m_pVehicleAnim->GetTimeLeft() / m_pVehicleAnim->hierarchy->totalLength; break; - case ANIM_CAR_CLOSEDOOR_LHS: - case ANIM_CAR_CLOSEDOOR_LOW_LHS: - case ANIM_CAR_CLOSEDOOR_RHS: - case ANIM_CAR_CLOSEDOOR_LOW_RHS: - case ANIM_CAR_SHUFFLE_RHS: - case ANIM_CAR_LSHUFFLE_RHS: + case ANIM_STD_CAR_CLOSE_DOOR_LHS: + case ANIM_STD_CAR_CLOSE_DOOR_LO_LHS: + case ANIM_STD_CAR_CLOSE_DOOR_RHS: + case ANIM_STD_CAR_CLOSE_DOOR_LO_RHS: + case ANIM_STD_CAR_SHUFFLE_RHS: + case ANIM_STD_CAR_SHUFFLE_LO_RHS: seatPosMult = 0.0f; break; - case ANIM_CAR_JUMPIN_LHS: + case ANIM_STD_CAR_JUMP_IN_LO_LHS: { float animLength = m_pVehicleAnim->hierarchy->totalLength; seatPosMult = Max(0.0f, 0.5f * animLength - m_pVehicleAnim->currentTime) / animLength; break; } - case ANIM_CAR_CLOSE_LHS: - case ANIM_CAR_CLOSE_RHS: - case ANIM_COACH_OPEN_L: - case ANIM_COACH_OPEN_R: - case ANIM_COACH_IN_L: - case ANIM_COACH_IN_R: - case ANIM_COACH_OUT_L: + case ANIM_STD_CAR_CLOSE_LHS: + case ANIM_STD_CAR_CLOSE_RHS: + case ANIM_STD_COACH_OPEN_LHS: + case ANIM_STD_COACH_OPEN_RHS: + case ANIM_STD_COACH_GET_IN_LHS: + case ANIM_STD_COACH_GET_IN_RHS: + case ANIM_STD_COACH_GET_OUT_LHS: seatPosMult = 1.0f; break; default: @@ -3531,8 +3531,8 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) vehAnim = m_pVehicleAnim->animId; if (veh->IsBike() && (m_pVehicleAnim && vehAnim != ANIM_BIKE_KICK)) { float zBlend; - if (vehAnim != ANIM_BIKE_GETOFF_RHS && vehAnim != ANIM_BIKE_GETOFF_LHS) { - if (vehAnim != ANIM_BIKE_JUMPON_R && vehAnim != ANIM_BIKE_JUMPON_L) { + if (vehAnim != ANIM_BIKE_GETOFF_LHS && vehAnim != ANIM_BIKE_GETOFF_RHS) { + if (vehAnim != ANIM_BIKE_JUMPON_LHS && vehAnim != ANIM_BIKE_JUMPON_RHS) { zBlend = 0.0f; } else { float animLength = m_pVehicleAnim->hierarchy->totalLength; @@ -3547,10 +3547,10 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) neededPos.z += (autoZPos.z - neededPos.z) * zBlend; } else { currentZ = GetPosition().z; - if (m_pVehicleAnim && vehAnim != ANIM_VAN_GETIN_L && vehAnim != ANIM_VAN_CLOSE_L && vehAnim != ANIM_VAN_CLOSE && vehAnim != ANIM_VAN_GETIN) { + if (m_pVehicleAnim && vehAnim != ANIM_STD_VAN_GET_IN_REAR_LHS && vehAnim != ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS && vehAnim != ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS && vehAnim != ANIM_STD_VAN_GET_IN_REAR_RHS) { neededPos.z = autoZPos.z; m_vecMoveSpeed = CVector(0.0f, 0.0f, 0.0f); - } else if (neededPos.z < currentZ && m_pVehicleAnim && vehAnim != ANIM_VAN_CLOSE_L && vehAnim != ANIM_VAN_CLOSE) { + } else if (neededPos.z < currentZ && m_pVehicleAnim && vehAnim != ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS && vehAnim != ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS) { adjustedTimeStep = Max(m_pVehicleAnim->timeStep, 0.1f); // Smoothly change ped position @@ -3567,8 +3567,8 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) neededPos.z = (neededPos.z - currentZ) * zBlend + currentZ; } else { if (m_pVehicleAnim && - (vehAnim == ANIM_CAR_GETIN_RHS || vehAnim == ANIM_CAR_GETIN_LOW_RHS || vehAnim == ANIM_CAR_GETIN_LHS || vehAnim == ANIM_CAR_GETIN_LOW_LHS - || vehAnim == ANIM_CAR_QJACK || vehAnim == ANIM_VAN_GETIN_L || vehAnim == ANIM_VAN_GETIN)) { + (vehAnim == ANIM_STD_CAR_GET_IN_RHS || vehAnim == ANIM_STD_CAR_GET_IN_LO_RHS || vehAnim == ANIM_STD_CAR_GET_IN_LHS || vehAnim == ANIM_STD_CAR_GET_IN_LO_LHS + || vehAnim == ANIM_STD_QUICKJACK || vehAnim == ANIM_STD_VAN_GET_IN_REAR_LHS || vehAnim == ANIM_STD_VAN_GET_IN_REAR_RHS)) { adjustedTimeStep = Max(m_pVehicleAnim->timeStep, 0.1f); // Smoothly change ped position @@ -3745,9 +3745,9 @@ CPed::SetCarJack_AllClear(CVehicle* car, uint32 doorNode, uint32 doorFlag) bUsesCollision = false; if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_LHS : ANIM_CAR_ALIGN_LHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_STD_CAR_ALIGNHI_DOOR_LHS : ANIM_STD_CAR_ALIGN_DOOR_LHS, 4.0f); else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_RHS : ANIM_CAR_ALIGN_RHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_STD_CAR_ALIGNHI_DOOR_RHS : ANIM_STD_CAR_ALIGN_DOOR_RHS, 4.0f); m_pVehicleAnim->SetFinishCallback(PedAnimAlignCB, this); } @@ -3808,7 +3808,7 @@ CPed::BeingDraggedFromCar(void) bool dontRunAnim = false; if (!m_pVehicleAnim) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 1000.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 1000.0f); AssocGroupId assocGroup; if (m_pMyVehicle && m_pMyVehicle->IsBike()) { @@ -3818,17 +3818,17 @@ CPed::BeingDraggedFromCar(void) } else { if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) { if (bWillBeQuickJacked && m_vehDoor == CAR_DOOR_LF) { - enterAnim = ANIM_CAR_QJACKED; + enterAnim = ANIM_STD_QUICKJACKED; } else if (m_pMyVehicle->bLowVehicle) { - enterAnim = ANIM_CAR_LJACKED_LHS; + enterAnim = ANIM_STD_JACKEDCAR_LO_LHS; } else { - enterAnim = ANIM_CAR_JACKED_LHS; + enterAnim = ANIM_STD_JACKEDCAR_LHS; } } else if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) { if (m_pMyVehicle->bLowVehicle) - enterAnim = ANIM_CAR_LJACKED_RHS; + enterAnim = ANIM_STD_JACKEDCAR_LO_RHS; else - enterAnim = ANIM_CAR_JACKED_RHS; + enterAnim = ANIM_STD_JACKEDCAR_RHS; } else dontRunAnim = true; @@ -3861,7 +3861,7 @@ CPed::BeingDraggedFromCar(void) static float mult = 5.f; if (m_objective == OBJECTIVE_LEAVE_CAR_AND_DIE) { if (m_pMyVehicle) { - m_pMyVehicle->ProcessOpenDoor(m_vehDoor, NUM_STD_ANIMS, m_pVehicleAnim->currentTime * mult); + m_pMyVehicle->ProcessOpenDoor(m_vehDoor, ANIM_STD_NUM, m_pVehicleAnim->currentTime * mult); } } } @@ -3974,9 +3974,9 @@ CPed::SetEnterCar_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag) if (car->IsBoat()) { if (car->pHandling->Flags & HANDLING_SIT_IN_BOAT) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT, 100.0f); else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_BOAT_DRIVE, 100.0f); PedSetInCarCB(nil, this); bVehExitWillBeInstant = true; @@ -3987,9 +3987,9 @@ CPed::SetEnterCar_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag) } else { if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_RHS : ANIM_CAR_ALIGN_RHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_STD_CAR_ALIGNHI_DOOR_RHS : ANIM_STD_CAR_ALIGN_DOOR_RHS, 4.0f); else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_CAR_ALIGNHI_LHS : ANIM_CAR_ALIGN_LHS, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, zDiff > 4.4f ? ANIM_STD_CAR_ALIGNHI_DOOR_LHS : ANIM_STD_CAR_ALIGN_DOOR_LHS, 4.0f); m_pVehicleAnim->SetFinishCallback(PedAnimAlignCB, this); } } @@ -4016,16 +4016,16 @@ CPed::EnterCar(void) int anim = m_pVehicleAnim->animId; // One is pickup and other one is pullup, not same :p - if ((anim == ANIM_BIKE_PICKUP_R || anim == ANIM_BIKE_PICKUP_L) && m_pVehicleAnim->currentTime > 0.4667f) + if ((anim == ANIM_STD_BIKE_PICKUP_LHS || anim == ANIM_STD_BIKE_PICKUP_RHS) && m_pVehicleAnim->currentTime > 0.4667f) bike->bIsBeingPickedUp = true; - else if ((anim == ANIM_BIKE_PULLUP_R || anim == ANIM_BIKE_PULLUP_L) && m_pVehicleAnim->currentTime > 0.4667f) + else if ((anim == ANIM_STD_BIKE_PULLUP_LHS || anim == ANIM_STD_BIKE_PULLUP_RHS) && m_pVehicleAnim->currentTime > 0.4667f) bike->bIsBeingPickedUp = true; } else if (m_nPedState == PED_CARJACK && m_pVehicleAnim) { if (m_pVehicleAnim->currentTime > 0.4f && m_pVehicleAnim->currentTime - m_pVehicleAnim->timeStep <= 0.4f) { int anim = m_pVehicleAnim->animId; if (anim == ANIM_BIKE_KICK) { DMAudio.PlayOneShot(m_audioEntityId, SOUND_187, 3.0f); - } else if (anim == ANIM_BIKE_ELBOW_R || anim == ANIM_BIKE_ELBOW_L) { + } else if (anim == ANIM_STD_BIKE_ELBOW_LHS || anim == ANIM_STD_BIKE_ELBOW_RHS) { DMAudio.PlayOneShot(m_audioEntityId, SOUND_186, 3.0f); } } @@ -4046,8 +4046,8 @@ CPed::QuitEnteringCar(void) RestartNonPartialAnims(); - if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE)) - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 100.0f); + if (!RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE)) + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 100.0f); if (veh) { if (m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER || m_nPedState == PED_CARJACK) @@ -4397,7 +4397,7 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) m_pVehicleAnim->blendDelta = -1000.0f; RemoveInCarAnims(); SetMoveState(PEDMOVE_NONE); - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 100.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 100.0f); veh->AutoPilot.m_nCruiseSpeed = 0; if (teleportNeeded) { @@ -4405,9 +4405,9 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) } else { if (veh->GetUp().z <= -0.8f && !veh->IsBike()) { if (m_vehDoor == CAR_DOOR_RF || m_vehDoor == CAR_DOOR_RR) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_CRAWLOUT_RHS2); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CRAWLOUT_RHS); } else if (m_vehDoor == CAR_DOOR_LF || m_vehDoor == CAR_DOOR_LR) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_CRAWLOUT_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CRAWLOUT_LHS); } m_pVehicleAnim->SetFinishCallback(PedSetOutCarCB, this); @@ -4420,11 +4420,11 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) break; case CAR_DOOR_RF: case CAR_DOOR_RR: - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_GETOFF_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_GETOFF_RHS); break; case CAR_DOOR_LF: case CAR_DOOR_LR: - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_GETOFF_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_GETOFF_LHS); break; default: break; @@ -4459,48 +4459,48 @@ CPed::SetExitCar(CVehicle *veh, uint32 wantedDoorNode) switch (m_vehDoor) { case CAR_DOOR_RF: if (canJumpOut) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLOUT_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROLLOUT_RHS); } else if (veh->bIsBus) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_COACH, ANIM_COACH_OUT_L); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_COACH, ANIM_STD_COACH_GET_OUT_LHS); } else { if (isLow) - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LOW_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LO_RHS); else - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_RHS); } break; case CAR_DOOR_RR: if (canJumpOut) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLOUT_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROLLOUT_RHS); } else if (veh->bIsVan) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_VAN, ANIM_VAN_GETOUT); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_GET_OUT_REAR_RHS); } else if (isLow) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LOW_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LO_RHS); } else { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_RHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_RHS); } break; case CAR_DOOR_LF: if (canJumpOut) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLOUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROLLOUT_LHS); } else if (veh->bIsBus) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_COACH, ANIM_COACH_OUT_L); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_COACH, ANIM_STD_COACH_GET_OUT_LHS); } else { if (isLow) - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LOW_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LO_LHS); else - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LHS); } break; case CAR_DOOR_LR: if (canJumpOut) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLOUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROLLOUT_LHS); } else if (veh->bIsVan) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_VAN, ANIM_VAN_GETOUT_L); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_VAN, ANIM_STD_VAN_GET_OUT_REAR_LHS); } else if (isLow) { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LOW_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LO_LHS); } else { - m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_GETOUT_LHS); + m_pVehicleAnim = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_GETOUT_LHS); } break; default: @@ -4536,9 +4536,9 @@ CPed::ExitCar(void) ((CBike*)m_pMyVehicle)->KnockOffRider(WEAPONTYPE_UNARMED, 0, this, false); } } else if (m_pMyVehicle->IsCar()) { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLOUT_LHS)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROLLOUT_LHS)) { ((CAutomobile*)m_pMyVehicle)->KnockPedOutCar(WEAPONTYPE_UNIDENTIFIED, CAR_DOOR_LF, this); - } else if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLOUT_RHS)) { + } else if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROLLOUT_RHS)) { ((CAutomobile*)m_pMyVehicle)->KnockPedOutCar(WEAPONTYPE_UNIDENTIFIED, CAR_DOOR_RF, this); } } @@ -4555,9 +4555,9 @@ CPed::ExitCar(void) else LineUpPedWithCar(LINE_UP_TO_CAR_FALL); - } else if (exitAnim == ANIM_CAR_ROLLOUT_LHS || exitAnim == ANIM_CAR_ROLLOUT_RHS) { + } else if (exitAnim == ANIM_STD_ROLLOUT_LHS || exitAnim == ANIM_STD_ROLLOUT_RHS) { if (animTime > 0.07f && m_pMyVehicle && m_pMyVehicle->IsCar()) { - if (exitAnim == ANIM_CAR_ROLLOUT_LHS) { + if (exitAnim == ANIM_STD_ROLLOUT_LHS) { ((CAutomobile*)m_pMyVehicle)->KnockPedOutCar(WEAPONTYPE_UNIDENTIFIED, CAR_DOOR_LF, this); } else { ((CAutomobile*)m_pMyVehicle)->KnockPedOutCar(WEAPONTYPE_UNIDENTIFIED, CAR_DOOR_RF, this); @@ -4571,7 +4571,7 @@ CPed::ExitCar(void) if (m_pSeekTarget) { // Car is upside down if (m_pMyVehicle->GetUp().z > -0.8f) { - if (exitAnim == ANIM_CAR_CLOSE_RHS || exitAnim == ANIM_CAR_CLOSE_LHS || animTime > 0.3f) + if (exitAnim == ANIM_STD_CAR_CLOSE_RHS || exitAnim == ANIM_STD_CAR_CLOSE_LHS || animTime > 0.3f) LineUpPedWithCar(LINE_UP_TO_CAR_END); else LineUpPedWithCar((m_pMyVehicle->GetModelIndex() == MI_DODO ? LINE_UP_TO_CAR_END : LINE_UP_TO_CAR_START)); @@ -4592,7 +4592,7 @@ CPed::ExitCar(void) } if(foundPed && (!foundPed->IsPlayer() || m_nPedType == PEDTYPE_COP || m_objective == OBJECTIVE_KILL_CHAR_ON_FOOT || m_objective == OBJECTIVE_KILL_CHAR_ANY_MEANS)) if (animTime > 0.4f && foundPed->IsPedInControl()) - foundPed->SetFall(1000, ANIM_KO_SKID_FRONT, 1); + foundPed->SetFall(1000, ANIM_STD_HIGHIMPACT_FRONT, 1); } } } @@ -4804,7 +4804,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) CAnimManager::AddAnimBlockRef(bikehBlock); CAnimManager::AddAnimBlockRef(bikedBlock); - CAnimBlendHierarchy *enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_CAR_JACKED_LHS)->hierarchy; + CAnimBlendHierarchy *enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_JACKEDCAR_LHS)->hierarchy; CAnimBlendSequence *seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4816,7 +4816,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_CAR_GETIN_LHS)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4828,7 +4828,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_CAR_GETIN_LOW_LHS)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_CAR_GET_IN_LO_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4840,7 +4840,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_CAR_QJACKED)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_QUICKJACKED)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4852,7 +4852,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_VAN, ANIM_VAN_GETIN_L)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_VAN, ANIM_STD_VAN_GET_IN_REAR_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4864,7 +4864,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_TRAIN_GETOUT)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, ANIM_STD_TRAIN_GETOUT)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4876,7 +4876,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_BIKE_STANDARD, ANIM_BIKE_JUMPON_R)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_BIKE_STANDARD, ANIM_BIKE_JUMPON_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4888,7 +4888,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_BIKE_VESPA, ANIM_BIKE_JUMPON_R)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_BIKE_VESPA, ANIM_BIKE_JUMPON_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4900,7 +4900,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_BIKE_HARLEY, ANIM_BIKE_JUMPON_R)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_BIKE_HARLEY, ANIM_BIKE_JUMPON_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -4912,7 +4912,7 @@ CPed::SetAnimOffsetForEnterOrExitVehicle(void) } } - enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_BIKE_DIRT, ANIM_BIKE_JUMPON_R)->hierarchy; + enterAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_BIKE_DIRT, ANIM_BIKE_JUMPON_LHS)->hierarchy; seq = enterAssoc->sequences; CAnimManager::UncompressAnimation(enterAssoc); if (seq->numFrames > 0) { @@ -5235,7 +5235,7 @@ CPed::SetEnterTrain(CVehicle *train, uint32 unused) m_pMyVehicle->RegisterReference((CEntity **) &m_pMyVehicle); SetPedState(PED_ENTER_TRAIN); - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_TRAIN_GETIN, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_TRAIN_GETIN, 4.0f); m_pVehicleAnim->SetFinishCallback(PedSetInTrainCB, this); bUsesCollision = false; LineUpPedWithTrain(); @@ -5309,7 +5309,7 @@ CPed::SetExitTrain(CVehicle* train) GetNearestTrainPedPosition(train, exitPos); */ SetPedState(PED_EXIT_TRAIN); - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_TRAIN_GETOUT, 4.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_TRAIN_GETOUT, 4.0f); m_pVehicleAnim->SetFinishCallback(PedSetOutTrainCB, this); bUsesCollision = false; LineUpPedWithTrain(); @@ -5815,14 +5815,14 @@ CPed::SetDuck(uint32 time, bool sth) CAnimBlendAssociation *duckAssoc; if (bCrouchWhenShooting) { - duckAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_WEAPON_CROUCH, 4.0f); + duckAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_DUCK_WEAPON, 4.0f); duckAssoc->flags &= ~ASSOC_FADEOUTWHENDONE; bIsDucking = true; m_duckTimer = CTimer::GetTimeInMilliseconds() + time; } else { - CAnimBlendAssociation *duckAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); + CAnimBlendAssociation *duckAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); if (!duckAssoc || duckAssoc->blendDelta < 0.0f) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DUCK_DOWN, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_DUCK_DOWN, 4.0f); bIsDucking = true; m_duckTimer = CTimer::GetTimeInMilliseconds() + time; } @@ -5836,7 +5836,7 @@ CPed::Duck(void) ClearDuck(); else if (bIsDucking && bCrouchWhenShooting) { CWeaponInfo *weapon = CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType); - CAnimBlendAssociation *crouchAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_CROUCH); + CAnimBlendAssociation *crouchAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_WEAPON); if (!crouchAnim) { if(GetCrouchFireAnim(weapon)) crouchAnim = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(weapon)); @@ -5858,12 +5858,12 @@ CPed::Duck(void) void CPed::ClearDuck(bool clearTimer) { - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); if (!animAssoc) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_LOW); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_LOW); } if (!animAssoc) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_CROUCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_WEAPON); } if (animAssoc) { @@ -5922,9 +5922,9 @@ CPed::PedAnimDoorCloseRollingCB(CAnimBlendAssociation* animAssoc, void* arg) animAssoc->blendDelta = -1000.0f; if (veh->bLowVehicle) { - veh->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR_LOW, 1.0f); + veh->ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS, 1.0f); } else { - veh->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR, 1.0f); + veh->ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, 1.0f); } veh->m_nGettingOutFlags &= ~CAR_DOOR_FLAG_LF; @@ -5997,28 +5997,28 @@ CPed::AddInCarAnims(CVehicle* car, bool isDriver) { if (car->IsBoat()) { if (car->pHandling->Flags & HANDLING_SIT_IN_BOAT) { - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT, 100.0f); } else { - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_BOAT_DRIVE, 100.0f); } } else if (car->IsBike()) { if (isDriver) { m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ((CBike*)car)->m_bikeAnimType, ANIM_BIKE_RIDE, 100.0f); } else { - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ((CBike*)car)->m_bikeAnimType, ANIM_BIKE_PASSENGER, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ((CBike*)car)->m_bikeAnimType, ANIM_BIKE_RIDE_P, 100.0f); } } else { if (isDriver) { if (car->bLowVehicle) { - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_LSIT, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT_LO, 100.0f); } else { - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT, 100.0f); } } else { if (car->bLowVehicle) { - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SITPLO, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT_P_LO, 100.0f); } else { - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SITP, 100.0f); + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_SIT_P, 100.0f); } } } @@ -6031,24 +6031,24 @@ CPed::RemoveDrivebyAnims() { CAnimBlendAssociation *animAssoc; - AnimationId LeftAnim = ANIM_DRIVEBY_L; - AnimationId RightAnim = ANIM_DRIVEBY_R; + AnimationId LeftAnim = ANIM_STD_CAR_DRIVEBY_LEFT; + AnimationId RightAnim = ANIM_STD_CAR_DRIVEBY_RIGHT; if (m_pMyVehicle->pHandling->Flags & HANDLING_IS_BIKE) { - LeftAnim = ANIM_BIKE_DRIVEBY_LHS; - RightAnim = ANIM_BIKE_DRIVEBY_RHS; + LeftAnim = ANIM_BIKE_DRIVEBY_RHS; + RightAnim = ANIM_BIKE_DRIVEBY_LHS; } else if (m_pMyVehicle->bLowVehicle) { - LeftAnim = ANIM_DRIVEBY_LOW_L; - RightAnim = ANIM_DRIVEBY_LOW_R; + LeftAnim = ANIM_STD_CAR_DRIVEBY_LEFT_LO; + RightAnim = ANIM_STD_CAR_DRIVEBY_RIGHT_LO; } - animAssoc = RpAnimBlendClumpGetAssociation((RpClump*)m_rwObject, ANIM_BIKE_DRIVEBY_LHS); - if (animAssoc) - animAssoc->blendDelta = -1000.0f; animAssoc = RpAnimBlendClumpGetAssociation((RpClump*)m_rwObject, ANIM_BIKE_DRIVEBY_RHS); if (animAssoc) animAssoc->blendDelta = -1000.0f; - animAssoc = RpAnimBlendClumpGetAssociation((RpClump*)m_rwObject, ANIM_BIKE_DRIVEBY_FT); + animAssoc = RpAnimBlendClumpGetAssociation((RpClump*)m_rwObject, ANIM_BIKE_DRIVEBY_LHS); + if (animAssoc) + animAssoc->blendDelta = -1000.0f; + animAssoc = RpAnimBlendClumpGetAssociation((RpClump*)m_rwObject, ANIM_BIKE_DRIVEBY_FORWARD); if (animAssoc) animAssoc->blendDelta = -1000.0f; } @@ -6518,11 +6518,11 @@ CPed::KillCharOnFootArmed(CVector &ourPos, CVector &targetPos, CVector &distWith && distWithTargetSc < wepRange && m_pedInObjective->m_nPedState != PED_GETUP && m_pedInObjective->m_nPedState != PED_DRAG_FROM_CAR) { if (bIsDucking && !bCrouchWhenShooting) { - CAnimBlendAssociation* duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); + CAnimBlendAssociation* duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); if (!duckAnim) - duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_LOW); + duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_LOW); if (!duckAnim) - duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_CROUCH); + duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_WEAPON); if (duckAnim) { duckAnim->flags |= ASSOC_DELETEFADEDOUT; @@ -6777,7 +6777,7 @@ CPed::KillCharOnFootMelee(CVector &ourPos, CVector &targetPos, CVector &distWith } if (goForward) { m_curFightMove = FIGHTMOVE_SHUFFLE_F; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_SH_BACK, 16.f)->SetFinishCallback(FinishFightMoveCB,this); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_SHUFFLE_B, 16.f)->SetFinishCallback(FinishFightMoveCB,this); m_fightState = FIGHTSTATE_NO_MOVE; m_fightButtonPressure = 0; m_takeAStepAfterAttack = false; @@ -6805,11 +6805,11 @@ CPed::KillCharOnFootMelee(CVector &ourPos, CVector &targetPos, CVector &distWith && distWithTargetSc < wepRange && m_pedInObjective->m_nPedState != PED_GETUP && m_pedInObjective->m_nPedState != PED_DRAG_FROM_CAR) { if (bIsDucking) { - CAnimBlendAssociation* duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_DOWN); + CAnimBlendAssociation* duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_DOWN); if (!duckAnim) - duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DUCK_LOW); + duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_LOW); if (!duckAnim) - duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_CROUCH); + duckAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_DUCK_WEAPON); if (duckAnim) { duckAnim->flags |= ASSOC_DELETEFADEDOUT; diff --git a/src/peds/PedFight.cpp b/src/peds/PedFight.cpp index e8fee649..66c71927 100644 --- a/src/peds/PedFight.cpp +++ b/src/peds/PedFight.cpp @@ -31,38 +31,38 @@ RpClump* flyingClumpTemp; FightMove tFightMoves[NUM_FIGHTMOVES] = { - { NUM_STD_ANIMS, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_PUNCH_R, 0.2f, 8.f/30.f, 0.0f, 0.3f, 1.0f, HITLEVEL_HIGH, 1, 0 }, - { ANIM_FIGHT_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_FIGHT_SH_F, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_FIGHT_KNEE, 4.f/30.f, 0.2f, 0.0f, 0.6f, 1.0f, HITLEVEL_LOW, 2, 0 }, - { ANIM_FIGHT_LHOOK, 8.f/30.f, 10.f/30.f, 0.0f, 0.4f, 1.0f, HITLEVEL_HIGH, 3, 0 }, - { ANIM_FIGHT_JAB, 4.f/30.f, 0.2f, 0.0f, 0.7f, 1.0f, HITLEVEL_HIGH, 3, 0 }, - { ANIM_FIGHT_PUNCH, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, - { ANIM_FIGHT_LONGKICK, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_MEDIUM, 4, 0 }, - { ANIM_FIGHT_ROUNDHOUSE, 8.f/30.f, 10.f/30.f, 0.0f, 0.6f, 1.0f, HITLEVEL_MEDIUM, 4, 0 }, - { ANIM_FIGHT_KICK, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_HIGH, 2, 0 }, - { ANIM_FIGHT_HEAD, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_MEDIUM, 2, 0 }, - { ANIM_FIGHT_BKICK_L, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_LOW, 2, 0 }, - { ANIM_FIGHT_BKICK_L, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_LOW, 2, 0 }, - { ANIM_FIGHT_ELBOW_L, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_MEDIUM, 2, 0 }, - { ANIM_FIGHT_BKICK_R, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_MEDIUM, 2, 0 }, - { ANIM_FIGHT_ELBOW_R, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_HIGH, 2, 0 }, - { ANIM_KICK_FLOOR, 10.f/30.f, 14.f/30.f, 0.0f, 0.4f, 1.0f, HITLEVEL_GROUND, 1, 0 }, - { ANIM_HIT_FRONT, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_HIT_BACK, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_HIT_RIGHT, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_HIT_LEFT, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_HIT_BODYBLOW, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_HIT_CHEST, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_HIT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_HIT_WALK, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_FLOOR_HIT, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_HIT_BEHIND, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, - { ANIM_WEAPON_FIRE, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, - { ANIM_WEAPON_CROUCHFIRE, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, - { ANIM_WEAPON_SPECIAL, 4.f / 30.f, 7.f / 30.f, 10.f / 30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, - { ANIM_FIGHT2_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 } + { ANIM_STD_NUM, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_PUNCH, 0.2f, 8.f/30.f, 0.0f, 0.3f, 1.0f, HITLEVEL_HIGH, 1, 0 }, + { ANIM_STD_FIGHT_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_FIGHT_SHUFFLE_F, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_FIGHT_KNEE, 4.f/30.f, 0.2f, 0.0f, 0.6f, 1.0f, HITLEVEL_LOW, 2, 0 }, + { ANIM_STD_FIGHT_LHOOK, 8.f/30.f, 10.f/30.f, 0.0f, 0.4f, 1.0f, HITLEVEL_HIGH, 3, 0 }, + { ANIM_STD_FIGHT_JAB, 4.f/30.f, 0.2f, 0.0f, 0.7f, 1.0f, HITLEVEL_HIGH, 3, 0 }, + { ANIM_STD_FIGHT_PUNCH, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, + { ANIM_STD_FIGHT_LONGKICK, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_MEDIUM, 4, 0 }, + { ANIM_STD_FIGHT_ROUNDHOUSE, 8.f/30.f, 10.f/30.f, 0.0f, 0.6f, 1.0f, HITLEVEL_MEDIUM, 4, 0 }, + { ANIM_STD_FIGHT_KICK, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_HIGH, 2, 0 }, + { ANIM_STD_FIGHT_HEAD, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_MEDIUM, 2, 0 }, + { ANIM_STD_FIGHT_BKICK_L, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_LOW, 2, 0 }, + { ANIM_STD_FIGHT_BKICK_L, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_LOW, 2, 0 }, + { ANIM_STD_FIGHT_ELBOW_L, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_MEDIUM, 2, 0 }, + { ANIM_STD_FIGHT_BKICK_R, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_MEDIUM, 2, 0 }, + { ANIM_STD_FIGHT_ELBOW_R, 8.f/30.f, 10.f/30.f, 0.0f, 0.5f, 1.0f, HITLEVEL_HIGH, 2, 0 }, + { ANIM_STD_KICKGROUND, 10.f/30.f, 14.f/30.f, 0.0f, 0.4f, 1.0f, HITLEVEL_GROUND, 1, 0 }, + { ANIM_STD_HIT_FRONT, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_BACK, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_RIGHT, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_LEFT, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_BODYBLOW, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_CHEST, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_WALK, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_FLOOR, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_STD_HIT_BEHIND, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }, + { ANIM_ATTACK_1, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, + { ANIM_ATTACK_2, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, + { ANIM_ATTACK_3, 4.f / 30.f, 7.f / 30.f, 10.f / 30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 }, + { ANIM_STD_FIGHT_2IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 } }; static PedOnGroundState @@ -182,14 +182,14 @@ CPed::SetPointGunAt(CEntity *to) if (bCrouchWhenShooting && bIsDucking && GetCrouchFireAnim(curWeapon)) { aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(curWeapon)); } else { - aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); + aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); } if (!aimAssoc || aimAssoc->blendDelta < 0.0f) { if (bCrouchWhenShooting && bIsDucking && GetCrouchFireAnim(curWeapon)) { aimAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, GetCrouchFireAnim(curWeapon), 4.0f); } else { - aimAssoc = CAnimManager::AddAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_WEAPON_FIRE); + aimAssoc = CAnimManager::AddAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_ATTACK_1); } aimAssoc->blendAmount = 0.0f; @@ -204,7 +204,7 @@ CPed::PointGunAt(void) { CWeaponInfo *weaponInfo = CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType); float animLoopStart = weaponInfo->m_fAnimLoopStart; - CAnimBlendAssociation *weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); + CAnimBlendAssociation *weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); if (!weaponAssoc || weaponAssoc->blendDelta < 0.0f) { if (weaponInfo->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) { weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(weaponInfo)); @@ -240,7 +240,7 @@ CPed::ClearPointGunAt(void) RestorePreviousState(); } weaponInfo = CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); if (!animAssoc || animAssoc->blendDelta < 0.0f) { if (weaponInfo->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) { animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(weaponInfo)); @@ -284,7 +284,7 @@ CPed::SetAttack(CEntity *victim) SetPedState(PED_ATTACK); bIsAttacking = false; - CAnimBlendAssociation *animAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_MELEE_ATTACK_START, 8.0f); + CAnimBlendAssociation *animAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_ATTACK_EXTRA1, 8.0f); animAssoc->SetRun(); if (animAssoc->currentTime == animAssoc->hierarchy->totalLength) animAssoc->SetCurrentTime(0.0f); @@ -304,7 +304,7 @@ CPed::SetAttack(CEntity *victim) if (m_nPedState != PED_ATTACK) { SetPedState(PED_ATTACK); bIsAttacking = false; - CAnimBlendAssociation* animAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_MELEE_ATTACK_START, 8.0f); + CAnimBlendAssociation* animAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_ATTACK_EXTRA1, 8.0f); animAssoc->SetRun(); if (animAssoc->currentTime == animAssoc->hierarchy->totalLength) animAssoc->SetCurrentTime(0.0f); @@ -397,7 +397,7 @@ CPed::SetAttack(CEntity *victim) AnimationId fireAnim; if (curWeapon->IsFlagSet(WEAPONFLAG_THROW)) - fireAnim = ANIM_THROWABLE_START_THROW; + fireAnim = ANIM_ATTACK_EXTRA1; else if (CGame::nastyGame && (curWeapon->IsFlagSet(WEAPONFLAG_GROUND_2ND) || curWeapon->IsFlagSet(WEAPONFLAG_GROUND_3RD))) { PedOnGroundState pedOnGround = CheckForPedsOnGroundToAttack(this, nil); if (pedOnGround > PED_IN_FRONT_OF_ATTACKER || pedOnGround == NO_PED && bIsStanding && m_pCurSurface && m_pCurSurface->IsVehicle()) { @@ -503,19 +503,19 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) } if (GetCrouchFireAnim(currentWeapon) && attackAssoc) { if (attackAssoc->animId == GetCrouchFireAnim(currentWeapon) && !reloadAnimAssoc) { - newAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_WEAPON_CROUCH, 8.0f); + newAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_DUCK_WEAPON, 8.0f); newAnim->SetCurrentTime(newAnim->hierarchy->totalLength); newAnim->flags &= ~ASSOC_RUNNING; } } } - } else if (attackAssoc && attackAssoc->animId == ANIM_THROWABLE_START_THROW && currentWeapon->m_AnimToPlay == ASSOCGRP_THROW) { + } else if (attackAssoc && attackAssoc->animId == ANIM_ATTACK_EXTRA1 && currentWeapon->m_AnimToPlay == ASSOCGRP_THROW) { if ((!ped->IsPlayer() || ((CPlayerPed*)ped)->m_bHaveTargetSelected) && ped->IsPlayer()) { attackAssoc->blendDelta = -1000.0f; - newAnim = CAnimManager::AddAnimation(ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_THROWABLE_THROWU); + newAnim = CAnimManager::AddAnimation(ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_ATTACK_2); } else { attackAssoc->blendDelta = -1000.0; - newAnim = CAnimManager::AddAnimation(ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_THROWABLE_THROW); + newAnim = CAnimManager::AddAnimation(ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_ATTACK_1); } newAnim->SetFinishCallback(FinishedAttackCB, ped); @@ -525,7 +525,7 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) } if (GetCrouchFireAnim(currentWeapon) && attackAssoc) { if (attackAssoc->animId == GetCrouchFireAnim(currentWeapon) && !reloadAnimAssoc) { - newAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_WEAPON_CROUCH, 8.0f); + newAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_DUCK_WEAPON, 8.0f); newAnim->SetCurrentTime(newAnim->hierarchy->totalLength); newAnim->flags &= ~ASSOC_RUNNING; } @@ -538,17 +538,17 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) AnimationId groundAnim = GetFireAnimGround(currentWeapon); CAnimBlendAssociation *groundAnimAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), groundAnim); if (!(groundAnimAssoc && (groundAnimAssoc->blendAmount > 0.95f || groundAnimAssoc->blendDelta > 0.0f))) { - if (attackAssoc && attackAssoc->animId == ANIM_MELEE_ATTACK) { + if (attackAssoc && attackAssoc->animId == ANIM_ATTACK_1) { newAnim = CAnimManager::BlendAnimation( ped->GetClump(), currentWeapon->m_AnimToPlay, GetSecondFireAnim(currentWeapon), 8.0f); } else { newAnim = CAnimManager::BlendAnimation( - ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_MELEE_ATTACK, 8.0f); + ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_ATTACK_1, 8.0f); } newAnim->SetFinishCallback(FinishedAttackCB, ped); } } else { - if (attackAssoc && attackAssoc->animId == ANIM_MELEE_ATTACK && currentWeapon->m_AnimToPlay == ASSOCGRP_UNARMED) { + if (attackAssoc && attackAssoc->animId == ANIM_ATTACK_1 && currentWeapon->m_AnimToPlay == ASSOCGRP_UNARMED) { attackAssoc->blendDelta = -8.0f; attackAssoc->flags |= ASSOC_DELETEFADEDOUT; ped->ClearAttack(); @@ -556,7 +556,7 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) } if (attackAssoc) { if (currentWeapon->m_AnimToPlay == ASSOCGRP_THROW) { - if ((attackAssoc->animId == ANIM_THROWABLE_THROW || attackAssoc->animId == ANIM_THROWABLE_THROWU) && ped->GetWeapon()->m_nAmmoTotal > 0) { + if ((attackAssoc->animId == ANIM_ATTACK_1 || attackAssoc->animId == ANIM_ATTACK_2) && ped->GetWeapon()->m_nAmmoTotal > 0) { ped->RemoveWeaponModel(currentWeapon->m_nModelId); ped->AddWeaponModel(currentWeapon->m_nModelId); } @@ -584,7 +584,7 @@ CPed::FinishedReloadCB(CAnimBlendAssociation *reloadAssoc, void *arg) } if (weapon->IsFlagSet(WEAPONFLAG_RELOAD) && reloadAssoc) { if (reloadAssoc->animId == GetCrouchReloadAnim(weapon) && !crouchFireAssoc) { - CAnimBlendAssociation *crouchAssoc = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_WEAPON_CROUCH, 8.0f); + CAnimBlendAssociation *crouchAssoc = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_DUCK_WEAPON, 8.0f); crouchAssoc->SetCurrentTime(crouchAssoc->hierarchy->totalLength); crouchAssoc->flags &= ~ASSOC_RUNNING; } @@ -831,12 +831,12 @@ CPed::Attack(void) if(ourWeapon->m_AnimToPlay != ASSOCGRP_BASEBALLBAT && ourWeapon->m_AnimToPlay != ASSOCGRP_GOLFCLUB) { if (ourWeapon->m_eWeaponFire != WEAPON_FIRE_MELEE) { - TransformToNode(firePos, (weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_2ND && ourWeapon->m_AnimToPlay == ASSOCGRP_UNARMED) ? PED_FOOTR : PED_HANDR); + TransformToNode(firePos, (weaponAnimAssoc->animId == ANIM_ATTACK_2 && ourWeapon->m_AnimToPlay == ASSOCGRP_UNARMED) ? PED_FOOTR : PED_HANDR); } else { firePos = GetMatrix() * firePos; } } else { - if (weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_2ND) + if (weaponAnimAssoc->animId == ANIM_ATTACK_2) firePos.z = 0.7f * ourWeapon->m_fRadius - 1.0f; firePos = GetMatrix() * firePos; @@ -859,7 +859,7 @@ CPed::Attack(void) } switch (ourWeapon->m_AnimToPlay) { case ASSOCGRP_UNARMED: - if (weaponAnimAssoc->animId == ANIM_MELEE_ATTACK || weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_START) + if (weaponAnimAssoc->animId == ANIM_ATTACK_1 || weaponAnimAssoc->animId == ANIM_ATTACK_EXTRA1) DMAudio.PlayOneShot(m_audioEntityId, SOUND_FIGHT_46, (damagerType | (GetWeapon()->m_eWeaponType << 8))); break; case ASSOCGRP_KNIFE: @@ -882,7 +882,7 @@ CPed::Attack(void) } else { CVector firePos = ourWeapon->m_vecFireOffset; - if (weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_2ND) + if (weaponAnimAssoc->animId == ANIM_ATTACK_2) firePos.z = 0.7f * ourWeapon->m_fRadius - 1.0f; firePos = GetMatrix() * firePos; @@ -990,13 +990,13 @@ CPed::Attack(void) if (GetFireAnimGround(ourWeapon, false)) { weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, fireAnim, 8.0f); } else { - weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_KICK_FLOOR, 8.0f); + weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_KICKGROUND, 8.0f); } } weaponAnimAssoc->SetFinishCallback(FinishedAttackCB, this); } else if (GetSecondFireAnim(ourWeapon)) { if (weaponAnimAssoc->animId == GetSecondFireAnim(ourWeapon)) { - weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, ANIM_WEAPON_FIRE, 8.0f); + weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, ANIM_ATTACK_1, 8.0f); } else { weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, GetSecondFireAnim(ourWeapon), 8.0f); } @@ -1050,9 +1050,9 @@ CPed::StartFightAttack(uint8 buttonPressure) RestoreHeadingRate(); } - CAnimBlendAssociation* animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP); + CAnimBlendAssociation* animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP1); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP_R); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP2); if (animAssoc) { RestoreHeadingRate(); @@ -1068,10 +1068,10 @@ CPed::StartFightAttack(uint8 buttonPressure) fightIdleAssoc = CAnimManager::BlendAnimation(GetClump(), weaponInfo->m_AnimToPlay, GetFightIdleWithMeleeAnim(weaponInfo), 1000.0f); fightWithWeapon = true; } else { - fightIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_IDLE, 1000.0f); + fightIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_IDLE, 1000.0f); } } else { - fightIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_IDLE, 1000.0f); + fightIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_IDLE, 1000.0f); } m_lastFightMove = FIGHTMOVE_IDLE; m_curFightMove = IsPlayer() ? ChooseAttackPlayer(buttonPressure, fightWithWeapon) : ChooseAttackAI(buttonPressure, fightWithWeapon); @@ -1131,7 +1131,7 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) if (hitLevel == HITLEVEL_GROUND) { CAnimBlendAssociation *floorHitAssoc; if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) { - floorHitAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f); + floorHitAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f); } else { floorHitAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, tFightMoves[FIGHTMOVE_HITONFLOOR].animId, 8.0f); } @@ -1153,8 +1153,8 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) } else if (m_nPedState == PED_FALL) { if (hitLevel == HITLEVEL_GROUND && !IsPedHeadAbovePos(-0.3f)) { CAnimBlendAssociation *floorHitAssoc = RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL) ? - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f) : - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f) : + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR, 8.0f); if (floorHitAssoc) { floorHitAssoc->flags &= ~ASSOC_FADEOUTWHENDONE; floorHitAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -1169,16 +1169,16 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) AnimationId shotAnim; switch (direction) { case 1: - shotAnim = ANIM_SHOT_LEFT_PARTIAL; + shotAnim = ANIM_STD_HITBYGUN_LEFT; break; case 2: - shotAnim = ANIM_SHOT_BACK_PARTIAL; + shotAnim = ANIM_STD_HITBYGUN_BACK; break; case 3: - shotAnim = ANIM_SHOT_RIGHT_PARTIAL; + shotAnim = ANIM_STD_HITBYGUN_RIGHT; break; default: - shotAnim = ANIM_SHOT_FRONT_PARTIAL; + shotAnim = ANIM_STD_HITBYGUN_FRONT; break; } CAnimBlendAssociation *shotAssoc = RpAnimBlendClumpGetAssociation(GetClump(), shotAnim); @@ -1197,30 +1197,30 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) AnimationId hitAnim; switch (direction) { case 1: - hitAnim = ANIM_KO_SPIN_R; + hitAnim = ANIM_STD_HIGHIMPACT_LEFT; break; case 2: if (CGeneral::GetRandomNumber() & 1) { fall = false; - hitAnim = ANIM_HIT_BACK; + hitAnim = ANIM_STD_HIT_BACK; } else { - hitAnim = ANIM_KO_SKID_BACK; + hitAnim = ANIM_STD_HIGHIMPACT_BACK; } break; case 3: - hitAnim = ANIM_KO_SPIN_L; + hitAnim = ANIM_STD_HIGHIMPACT_RIGHT; break; default: if (hitLevel == HITLEVEL_LOW) { - hitAnim = ANIM_KO_SHOT_STOM; + hitAnim = ANIM_STD_KO_SHOT_STOMACH; } else if (CGeneral::GetRandomNumber() & 1) { fall = false; - hitAnim = ANIM_HIT_WALK; + hitAnim = ANIM_STD_HIT_WALK; } else if (CGeneral::GetRandomNumber() & 1) { fall = false; - hitAnim = ANIM_HIT_HEAD; + hitAnim = ANIM_STD_HIT_HEAD; } else { - hitAnim = ANIM_KO_SHOT_FACE; + hitAnim = ANIM_STD_KO_SHOT_FACE; } break; } @@ -1245,11 +1245,11 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) break; case HITLEVEL_LOW: if (direction == 2 && (!IsPlayer() || ((CGeneral::GetRandomNumber() & 1) && m_fHealth < 30.0f))) { - SetFall(1000, ANIM_KO_SKID_BACK, false); + SetFall(1000, ANIM_STD_HIGHIMPACT_BACK, false); Say(SOUND_PED_DEFEND); return; } else if (direction != 2 && !IsPlayer() && (CGeneral::GetRandomNumber() & 1) && m_fHealth < 30.0f) { - SetFall(1000, ANIM_KO_SHOT_STOM, false); + SetFall(1000, ANIM_STD_KO_SHOT_STOMACH, false); Say(SOUND_PED_DEFEND); return; } @@ -1325,14 +1325,14 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) m_fightButtonPressure = 0; m_lastFightMove = FIGHTMOVE_IDLE; RpAnimBlendClumpRemoveAssociations(GetClump(), ASSOC_REPEAT); - CAnimBlendAssociation *walkStartAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK_START); + CAnimBlendAssociation *walkStartAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_STARTWALK); if (walkStartAssoc) { walkStartAssoc->flags |= ASSOC_DELETEFADEDOUT; walkStartAssoc->blendDelta = -1000.0f; } - CAnimBlendAssociation *walkStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP); + CAnimBlendAssociation *walkStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP1); if (!walkStopAssoc) - walkStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP_R); + walkStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP2); if (walkStopAssoc) { walkStopAssoc->flags |= ASSOC_DELETEFADEDOUT; walkStopAssoc->blendDelta = -1000.0f; @@ -1347,10 +1347,10 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk) if (GetFightIdleWithMeleeAnim(weaponInfo)) { fightIdleAssoc = CAnimManager::AddAnimation(GetClump(), weaponInfo->m_AnimToPlay, GetFightIdleWithMeleeAnim(weaponInfo)); } else { - fightIdleAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_IDLE); + fightIdleAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_IDLE); } } else { - fightIdleAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_IDLE); + fightIdleAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_IDLE); } fightIdleAssoc->blendAmount = 1.0f; CAnimBlendAssociation *moveAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, tFightMoves[m_curFightMove].animId, 8.0f); @@ -1404,7 +1404,7 @@ CPed::Fight(void) } if (m_curFightMove == FIGHTMOVE_SHUFFLE_F && !currentAssoc) - currentAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_SH_BACK); + currentAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_SHUFFLE_B); if (IsPlayer() && currentAssoc && weapon == WEAPONTYPE_KATANA) { if (m_curFightMove == FIGHTMOVE_MELEE1 || m_curFightMove == FIGHTMOVE_MELEE2) { @@ -1927,25 +1927,25 @@ CPed::EndFight(uint8 endType) m_curFightMove = FIGHTMOVE_NULL; RestorePreviousState(); - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); if (animAssoc) animAssoc->flags |= ASSOC_DELETEFADEDOUT; switch (endType) { case ENDFIGHT_NORMAL: - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 8.0f); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT2_IDLE, 8.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_2IDLE, 8.0f); break; case ENDFIGHT_WITH_A_STEP: - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 1.0f); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_WALK_START, 8.0f); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 1.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_STARTWALK, 8.0f); break; case ENDFIGHT_FAST: - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 8.0f); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT2_IDLE, 8.0f)->speed = 2.0f; + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 8.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_FIGHT_2IDLE, 8.0f)->speed = 2.0f; break; default: break; @@ -2229,7 +2229,7 @@ CPed::FightHitPed(CPed *victim, CVector &touchPoint, CVector &dir, int16 piece) || weaponType != WEAPONTYPE_UNARMED && weaponType != WEAPONTYPE_BRASSKNUCKLE && IsPlayer() || victim->m_pedStats->m_flags & STAT_ONE_HIT_KNOCKDOWN || brassKnucklePunch)) { - victim->SetFall(0, (AnimationId)(direction + ANIM_KO_SKID_FRONT), 0); + victim->SetFall(0, (AnimationId)(direction + ANIM_STD_HIGHIMPACT_FRONT), 0); if (victim->m_nPedState == PED_FALL) victim->bIsStanding = false; } @@ -2364,7 +2364,7 @@ CPed::LoadFightData(void) animAssoc = CAnimManager::GetAnimAssociation(ASSOCGRP_STD, animName); tFightMoves[moveId].animId = (AnimationId)animAssoc->animId; } else { - tFightMoves[moveId].animId = ANIM_WALK; + tFightMoves[moveId].animId = ANIM_STD_WALK; } } moveId++; @@ -2389,7 +2389,7 @@ CPed::SetInvestigateEvent(eEventType event, CVector2D pos, float distanceToCount if (m_eventType >= EVENT_ICECREAM) m_lookTimer = 0; else - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_HANDSCOWER, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_HANDSCOWER, 4.0f); } @@ -2429,7 +2429,7 @@ CPed::InvestigateEvent(void) case EVENT_HIT_AND_RUN_COP: if (CTimer::GetTimeInMilliseconds() > m_lookTimer) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); if (animAssoc) { animAssoc->blendDelta = -8.0f; @@ -2441,7 +2441,7 @@ CPed::InvestigateEvent(void) } else if (CGeneral::GetRandomNumber() & 3) { ClearLookFlag(); - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ROAD_CROSS, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROADCROSS, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(1000, 2500)); Say(SOUND_PED_CHAT_EVENT); @@ -2455,16 +2455,16 @@ CPed::InvestigateEvent(void) case EVENT_EXPLOSION: if (bHasACamera && CTimer::GetTimeInMilliseconds() > m_lookTimer) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CAM); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_CAM); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); - if (animAssoc && animAssoc->animId == ANIM_IDLE_CAM) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); + if (animAssoc && animAssoc->animId == ANIM_STD_IDLE_CAM) { + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(1000, 2500)); } else if (CGeneral::GetRandomNumber() & 3) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_CAM, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_CAM, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(2500, 5000)); if (!CGame::germanGame) Say(SOUND_PED_CHAT_EVENT); @@ -2474,30 +2474,30 @@ CPed::InvestigateEvent(void) } } else if (CTimer::GetTimeInMilliseconds() > m_lookTimer) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_HBHB); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_HBHB); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_XPRESS_SCRATCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_XPRESS_SCRATCH); - if (animAssoc && animAssoc->animId == ANIM_IDLE_STANCE) { + if (animAssoc && animAssoc->animId == ANIM_STD_IDLE) { if (CGeneral::GetRandomNumber() & 1) - animToPlay = ANIM_IDLE_HBHB; + animToPlay = ANIM_STD_IDLE_HBHB; else - animToPlay = ANIM_XPRESS_SCRATCH; + animToPlay = ANIM_STD_XPRESS_SCRATCH; CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animToPlay, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(1500, 4000)); - } else if (animAssoc && animAssoc->animId == ANIM_IDLE_HBHB) { + } else if (animAssoc && animAssoc->animId == ANIM_STD_IDLE_HBHB) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; if (CGeneral::GetRandomNumber() & 1) { - animToPlay = ANIM_IDLE_STANCE; + animToPlay = ANIM_STD_IDLE; animGroup = m_animGroup; } else { - animToPlay = ANIM_XPRESS_SCRATCH; + animToPlay = ANIM_STD_XPRESS_SCRATCH; animGroup = ASSOCGRP_STD; } @@ -2506,10 +2506,10 @@ CPed::InvestigateEvent(void) } else { if (CGeneral::GetRandomNumber() & 1) { - animToPlay = ANIM_IDLE_STANCE; + animToPlay = ANIM_STD_IDLE; animGroup = m_animGroup; } else { - animToPlay = ANIM_IDLE_HBHB; + animToPlay = ANIM_STD_IDLE_HBHB; animGroup = ASSOCGRP_STD; } @@ -2527,26 +2527,26 @@ CPed::InvestigateEvent(void) if (CTimer::GetTimeInMilliseconds() > m_lookTimer) { if (m_lookTimer) { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; if (m_eventType == EVENT_ICECREAM) - animToPlay = ANIM_IDLE_CHAT; + animToPlay = ANIM_STD_CHAT; else - animToPlay = ANIM_XPRESS_SCRATCH; + animToPlay = ANIM_STD_XPRESS_SCRATCH; CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, animToPlay,4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(2000, 5000)); } else { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; ClearInvestigateEvent(); } else { - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_XPRESS_SCRATCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_XPRESS_SCRATCH); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -2555,7 +2555,7 @@ CPed::InvestigateEvent(void) } } } else { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_ROAD_CROSS, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_ROADCROSS, 4.0f); SetLookTimer(CGeneral::GetRandomNumberInRange(1000, 2500)); } } @@ -2601,13 +2601,13 @@ CPed::InvestigateEvent(void) void CPed::ClearInvestigateEvent(void) { - CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ROAD_CROSS); + CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROADCROSS); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_XPRESS_SCRATCH); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_XPRESS_SCRATCH); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_HBHB); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_HBHB); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_CHAT); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CHAT); if (animAssoc) { animAssoc->blendDelta = -8.0f; animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -2629,7 +2629,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi CPlayerPed *player = FindPlayerPed(); float dieDelta = 4.0f; float dieSpeed = 0.0f; - AnimationId dieAnim = ANIM_KO_SHOT_FRONT1; + AnimationId dieAnim = ANIM_STD_KO_FRONT; bool headShot = false; bool willLinger = false; int random; @@ -2677,9 +2677,9 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (m_nPedState == PED_GETUP) { if (!IsPedHeadAbovePos(-0.3f)) { if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) - dieAnim = ANIM_FLOOR_HIT_F; + dieAnim = ANIM_STD_HIT_FLOOR_FRONT; else - dieAnim = ANIM_FLOOR_HIT; + dieAnim = ANIM_STD_HIT_FLOOR; dieDelta *= 2.0f; dieSpeed = 0.5f; detectDieAnim = false; @@ -2688,14 +2688,14 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi CAnimBlendAssociation *fallAssoc = RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_PARTIAL); if (!fallAssoc || fallAssoc->IsRunning()) { if (fallAssoc && fallAssoc->blendDelta >= 0.0f) - dieAnim = NUM_STD_ANIMS; + dieAnim = ANIM_STD_NUM; else - dieAnim = ANIM_KO_SHOT_FRONT1; + dieAnim = ANIM_STD_KO_FRONT; } else { if (fallAssoc->flags & ASSOC_FRONTAL) - dieAnim = ANIM_FLOOR_HIT_F; + dieAnim = ANIM_STD_HIT_FLOOR_FRONT; else - dieAnim = ANIM_FLOOR_HIT; + dieAnim = ANIM_STD_HIT_FLOOR; dieDelta *= 2.0f; dieSpeed = 0.5f; @@ -2712,28 +2712,28 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (m_nPedState == PED_FALL) { if (IsPedHeadAbovePos(-0.3f)) { - dieAnim = NUM_STD_ANIMS; + dieAnim = ANIM_STD_NUM; } else { if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) - dieAnim = ANIM_FLOOR_HIT_F; + dieAnim = ANIM_STD_HIT_FLOOR_FRONT; else - dieAnim = ANIM_FLOOR_HIT; + dieAnim = ANIM_STD_HIT_FLOOR; dieDelta = dieDelta * 2.0f; dieSpeed = 0.5f; } } else { switch (direction) { case 0: - dieAnim = ANIM_KO_SKID_FRONT; + dieAnim = ANIM_STD_HIGHIMPACT_FRONT; break; case 1: - dieAnim = ANIM_KO_SPIN_R; + dieAnim = ANIM_STD_HIGHIMPACT_LEFT; break; case 2: - dieAnim = ANIM_KO_SKID_BACK; + dieAnim = ANIM_STD_HIGHIMPACT_BACK; break; case 3: - dieAnim = ANIM_KO_SPIN_L; + dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; break; default: break; @@ -2761,12 +2761,12 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (m_nPedState == PED_FALL) { if (IsPedHeadAbovePos(-0.3f)) { - dieAnim = NUM_STD_ANIMS; + dieAnim = ANIM_STD_NUM; } else { if (RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FRONTAL)) - dieAnim = ANIM_FLOOR_HIT_F; + dieAnim = ANIM_STD_HIT_FLOOR_FRONT; else - dieAnim = ANIM_FLOOR_HIT; + dieAnim = ANIM_STD_HIT_FLOOR; dieDelta = dieDelta * 2.0f; dieSpeed = 0.5f; } @@ -2774,28 +2774,28 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (damagedBy != FindPlayerPed() || FindPlayerPed()->m_curFightMove != FIGHTMOVE_MELEE3) { switch (direction) { case 0: - dieAnim = ANIM_KO_SKID_FRONT; + dieAnim = ANIM_STD_HIGHIMPACT_FRONT; break; case 1: - dieAnim = ANIM_KO_SPIN_R; + dieAnim = ANIM_STD_HIGHIMPACT_LEFT; break; case 2: - dieAnim = ANIM_KO_SKID_BACK; + dieAnim = ANIM_STD_HIGHIMPACT_BACK; break; case 3: - dieAnim = ANIM_KO_SPIN_L; + dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; break; default: break; } } else { - dieAnim = ANIM_KO_SHOT_STOM; + dieAnim = ANIM_STD_KO_SHOT_STOMACH; } } else { - dieAnim = ANIM_KO_SHOT_FACE; + dieAnim = ANIM_STD_KO_SHOT_FACE; } } else { - dieAnim = ANIM_KO_SHOT_FACE; + dieAnim = ANIM_STD_KO_SHOT_FACE; RemoveBodyPart(PED_HEAD, direction); headShot = true; willLinger = true; @@ -2836,56 +2836,56 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (method == WEAPONTYPE_SHOTGUN) { switch (direction) { case 0: - dieAnim = ANIM_KO_SKID_FRONT; + dieAnim = ANIM_STD_HIGHIMPACT_FRONT; break; case 1: - dieAnim = ANIM_KO_SPIN_R; + dieAnim = ANIM_STD_HIGHIMPACT_LEFT; break; case 2: - dieAnim = ANIM_KO_SKID_BACK; + dieAnim = ANIM_STD_HIGHIMPACT_BACK; break; case 3: - dieAnim = ANIM_KO_SPIN_L; + dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; break; default: break; } } else - dieAnim = ANIM_KO_SHOT_FRONT1; + dieAnim = ANIM_STD_KO_FRONT; willLinger = false; } else { switch (pedPiece) { case PEDPIECE_TORSO: willLinger = false; - dieAnim = ANIM_KO_SHOT_FRONT1; + dieAnim = ANIM_STD_KO_FRONT; break; case PEDPIECE_MID: willLinger = false; - dieAnim = ANIM_KO_SHOT_STOM; + dieAnim = ANIM_STD_KO_SHOT_STOMACH; break; case PEDPIECE_LEFTARM: - dieAnim = ANIM_KO_SHOT_ARML; + dieAnim = ANIM_STD_KO_SHOT_ARM_L; RemoveBodyPart(PED_UPPERARML, direction); willLinger = true; break; case PEDPIECE_RIGHTARM: - dieAnim = ANIM_KO_SHOT_ARMR; + dieAnim = ANIM_STD_KO_SHOT_ARM_R; RemoveBodyPart(PED_UPPERARMR, direction); willLinger = true; break; case PEDPIECE_LEFTLEG: - dieAnim = ANIM_KO_SHOT_LEGL; + dieAnim = ANIM_STD_KO_SHOT_LEG_L; RemoveBodyPart(PED_UPPERLEGL, direction); willLinger = true; break; case PEDPIECE_RIGHTLEG: - dieAnim = ANIM_KO_SHOT_LEGR; + dieAnim = ANIM_STD_KO_SHOT_LEG_R; RemoveBodyPart(PED_UPPERLEGR, direction); willLinger = true; break; case PEDPIECE_HEAD: - dieAnim = ANIM_KO_SHOT_FACE; + dieAnim = ANIM_STD_KO_SHOT_FACE; RemoveBodyPart(PED_HEAD, direction); headShot = true; willLinger = true; @@ -2925,16 +2925,16 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi switch (direction) { case 0: - dieAnim = ANIM_KO_SKID_FRONT; + dieAnim = ANIM_STD_HIGHIMPACT_FRONT; break; case 1: - dieAnim = ANIM_KO_SPIN_R; + dieAnim = ANIM_STD_HIGHIMPACT_LEFT; break; case 2: - dieAnim = ANIM_KO_SKID_BACK; + dieAnim = ANIM_STD_HIGHIMPACT_BACK; break; case 3: - dieAnim = ANIM_KO_SPIN_L; + dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; break; default: break; @@ -2944,7 +2944,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (bFireProof) return false; - dieAnim = ANIM_KO_SHOT_FRONT1; + dieAnim = ANIM_STD_KO_FRONT; break; case WEAPONTYPE_RAMMEDBYCAR: case WEAPONTYPE_RUNOVERBYCAR: @@ -2959,36 +2959,36 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (pedPiece == PEDPIECE_RIGHTARM && random > 1 || pedPiece == PEDPIECE_MID && random == 2) - dieAnim = ANIM_KO_SPIN_L; + dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; else - dieAnim = ANIM_KO_SKID_FRONT; + dieAnim = ANIM_STD_HIGHIMPACT_FRONT; } else - dieAnim = ANIM_KO_SPIN_R; + dieAnim = ANIM_STD_HIGHIMPACT_LEFT; break; case 1: if (m_nPedState == PED_DIVE_AWAY) - dieAnim = ANIM_KD_LEFT; + dieAnim = ANIM_STD_SPINFORWARD_LEFT; else - dieAnim = ANIM_KO_SPIN_R; + dieAnim = ANIM_STD_HIGHIMPACT_LEFT; break; case 2: if ((pedPiece != PEDPIECE_LEFTARM || random <= 1) && (pedPiece != PEDPIECE_MID || random != 1)) { if ((pedPiece != PEDPIECE_RIGHTARM || random <= 1) && (pedPiece != PEDPIECE_MID || random != 2)) { - dieAnim = ANIM_KO_SKID_BACK; + dieAnim = ANIM_STD_HIGHIMPACT_BACK; } else { - dieAnim = ANIM_KD_RIGHT; + dieAnim = ANIM_STD_SPINFORWARD_RIGHT; } } else - dieAnim = ANIM_KD_LEFT; + dieAnim = ANIM_STD_SPINFORWARD_LEFT; break; case 3: if (m_nPedState == PED_DIVE_AWAY) - dieAnim = ANIM_KD_RIGHT; + dieAnim = ANIM_STD_SPINFORWARD_RIGHT; else - dieAnim = ANIM_KO_SPIN_L; + dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; break; default: break; @@ -3006,7 +3006,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi } break; case WEAPONTYPE_DROWNING: - dieAnim = ANIM_DROWN; + dieAnim = ANIM_STD_DROWN; break; case WEAPONTYPE_FALL: if (bCollisionProof) @@ -3014,16 +3014,16 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi switch (direction) { case 0: - dieAnim = ANIM_KO_SKID_FRONT; + dieAnim = ANIM_STD_HIGHIMPACT_FRONT; break; case 1: - dieAnim = ANIM_KO_SPIN_R; + dieAnim = ANIM_STD_HIGHIMPACT_LEFT; break; case 2: - dieAnim = ANIM_KO_SKID_BACK; + dieAnim = ANIM_STD_HIGHIMPACT_BACK; break; case 3: - dieAnim = ANIM_KO_SPIN_L; + dieAnim = ANIM_STD_HIGHIMPACT_RIGHT; break; default: break; @@ -3056,7 +3056,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi } if (method == WEAPONTYPE_FALL) { - if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLOUT_LHS)) { + if (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_ROLLOUT_LHS)) { if (m_fHealth >= 1.0 && m_fHealth - healthImpact < 5.0f) { m_fHealth = Min(m_fHealth, 5.0f); return false; @@ -3133,7 +3133,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi if (player == this) m_pMyVehicle->SetStatus(STATUS_PLAYER_DISABLED); - SetDie(NUM_STD_ANIMS, 4.0f, 0.0f); + SetDie(ANIM_STD_NUM, 4.0f, 0.0f); return true; } else { m_fHealth = 0.0f; @@ -3486,7 +3486,7 @@ CPed::CollideWithPed(CPed *collideWith) } else { SetLookFlag(collideWith, false); TurnBody(); - animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_PPUNCH, 8.0f); + animAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_PARTIAL_PUNCH, 8.0f); animAssoc->flags |= ASSOC_FADEOUTWHENDONE; m_nPedStateTimer = CTimer::GetTimeInMilliseconds() + 2000; if (!heIsMissionChar) { @@ -3507,22 +3507,22 @@ CPed::CollideWithPed(CPed *collideWith) moveForce.z += 0.1f; ApplyMoveForce(moveForce); if (collideWith->m_nMoveState != PEDMOVE_RUN && collideWith->m_nMoveState != PEDMOVE_SPRINT) - animToPlay = ANIM_HIT_LEFT; + animToPlay = ANIM_STD_HIT_LEFT; else - animToPlay = ANIM_SHOT_LEFT_PARTIAL; + animToPlay = ANIM_STD_HITBYGUN_LEFT; } else if (heLooksToUs) { CVector moveForce = GetRight() * -1.0f; moveForce.z += 0.1f; ApplyMoveForce(moveForce); if (collideWith->m_nMoveState != PEDMOVE_RUN && collideWith->m_nMoveState != PEDMOVE_SPRINT) - animToPlay = ANIM_HIT_RIGHT; + animToPlay = ANIM_STD_HIT_RIGHT; else - animToPlay = ANIM_SHOT_RIGHT_PARTIAL; + animToPlay = ANIM_STD_HITBYGUN_RIGHT; } else { if (collideWith->m_nMoveState != PEDMOVE_RUN && collideWith->m_nMoveState != PEDMOVE_SPRINT) - animToPlay = ANIM_HIT_BACK; + animToPlay = ANIM_STD_HIT_BACK; else - animToPlay = ANIM_SHOT_BACK_PARTIAL; + animToPlay = ANIM_STD_HITBYGUN_BACK; } if (collideWith->IsPedInControl() && CTimer::GetTimeInMilliseconds() > collideWith->m_nPedStateTimer) { @@ -3539,17 +3539,17 @@ CPed::CollideWithPed(CPed *collideWith) moveForce.z += 0.1f; ApplyMoveForce(moveForce); if (heLooksToUs) - animToPlay = ANIM_KO_SPIN_L; + animToPlay = ANIM_STD_HIGHIMPACT_RIGHT; else - animToPlay = ANIM_KD_RIGHT; + animToPlay = ANIM_STD_SPINFORWARD_RIGHT; } else { CVector moveForce = GetRight(); moveForce.z += 0.1f; ApplyMoveForce(moveForce); if (heLooksToUs) - animToPlay = ANIM_KO_SPIN_R; + animToPlay = ANIM_STD_HIGHIMPACT_LEFT; else - animToPlay = ANIM_KD_LEFT; + animToPlay = ANIM_STD_SPINFORWARD_LEFT; } if (m_nPedState == PED_ATTACK && collideWith->IsPedInControl()) @@ -3802,7 +3802,7 @@ CPed::KillPedWithCar(CVehicle *car, float impulse) damage = 30.0f; InflictDamage(car, WEAPONTYPE_RAMMEDBYCAR, damage, PEDPIECE_TORSO, fallDirection); - SetFall(1000, (AnimationId)(fallDirection + ANIM_KO_SKID_FRONT), true); + SetFall(1000, (AnimationId)(fallDirection + ANIM_STD_HIGHIMPACT_FRONT), true); if (OnGround() && !m_pCollidingEntity && (!IsPlayer() || bHasHitWall || car->GetModelIndex() == MI_TRAIN || m_vecDamageNormal.z < -0.8f)) { @@ -3846,18 +3846,18 @@ CPed::DriveVehicle(void) float targetUDLean = 0.0f; CAnimBlendAssociation *leftAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_LEFT); CAnimBlendAssociation *rightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_RIGHT); - CAnimBlendAssociation *stillAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_STILL); + CAnimBlendAssociation *stillAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_READY); CAnimBlendAssociation *fwdAssoc, *backAssoc; if (IsPlayer()) { - fwdAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_FWD); - backAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_BACK); + fwdAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_LEANF); + backAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_LEANB); } - CAnimBlendAssociation *walkbackAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_PUSHES); - CAnimBlendAssociation *drivebyAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_DRIVEBY_RHS); + CAnimBlendAssociation *walkbackAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_WALKBACK); + CAnimBlendAssociation *drivebyAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_DRIVEBY_LHS); if (!drivebyAssoc) - drivebyAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_DRIVEBY_LHS); + drivebyAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_DRIVEBY_RHS); if (!drivebyAssoc) - drivebyAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_DRIVEBY_FT); + drivebyAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BIKE_DRIVEBY_FORWARD); float velocityFwdDotProd = DotProduct(bike->m_vecMoveSpeed, bike->GetForward()); if (m_vecTurnSpeed.MagnitudeSqr() > 0.09f) { @@ -3868,7 +3868,7 @@ CPed::DriveVehicle(void) } if (!drivebyAssoc && Abs(velocityFwdDotProd) < 0.02f) { if (!stillAssoc || stillAssoc->blendAmount < 1.0 && stillAssoc->blendDelta <= 0.0) { - stillAssoc = CAnimManager::BlendAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_STILL, 2.0f); + stillAssoc = CAnimManager::BlendAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_READY, 2.0f); } } else { if (velocityFwdDotProd >= 0.0f) { @@ -3895,7 +3895,7 @@ CPed::DriveVehicle(void) walkbackAssoc->blendDelta = -4.0f; } } else if (!walkbackAssoc || walkbackAssoc->blendAmount < 1.0f && walkbackAssoc->blendDelta <= 0.0f) { - walkbackAssoc = CAnimManager::BlendAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_PUSHES, 4.0f); + walkbackAssoc = CAnimManager::BlendAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_WALKBACK, 4.0f); } } } @@ -3993,9 +3993,9 @@ CPed::DriveVehicle(void) float leftRightBlend = leftRightLeanAmount * blendDelta; if (IsPlayer()) { if (!fwdAssoc) - fwdAssoc = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_FWD); + fwdAssoc = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_LEANF); if (!backAssoc) - backAssoc = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_BACK); + backAssoc = CAnimManager::AddAnimation(GetClump(), bike->m_bikeAnimType, ANIM_BIKE_LEANB); if (bike->m_fPedLeanAmountUD < 0.0f) { backAssoc->blendAmount = fwdBackBlend; @@ -4044,35 +4044,35 @@ CPed::DriveVehicle(void) CAnimBlendAssociation* lbAssoc; CAnimBlendAssociation* sitAssoc; if (m_pMyVehicle->IsBoat() && !(m_pMyVehicle->pHandling->Flags & HANDLING_SIT_IN_BOAT)) { - sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_BOAT); + sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_BOAT_DRIVE); if (!sitAssoc || sitAssoc->blendAmount < 1.0f) { return; } - lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_BOAT_L); - rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_BOAT_R); - lbAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BOAT_LB); + lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_BOAT_DRIVE_LEFT); + rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_BOAT_DRIVE_RIGHT); + lbAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_BOAT_LOOKBEHIND); } else if (m_pMyVehicle->bLowVehicle) { - sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LSIT); + sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT_LO); if (!sitAssoc || sitAssoc->blendAmount < 1.0f) { return; } - lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_LOW_L); + lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_LEFT_LO); lbAssoc = nil; - rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_LOW_R); + rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_RIGHT_LO); } else { - sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_SIT); + sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_SIT); if (!sitAssoc || sitAssoc->blendAmount < 1.0f) { return; } - lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_L); - rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_R); - lbAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LB); + lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_LEFT); + rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVE_RIGHT); + lbAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_LOOKBEHIND); } if (lbAssoc && @@ -4081,13 +4081,13 @@ CPed::DriveVehicle(void) lbAssoc->blendDelta = -1000.0f; } - CAnimBlendAssociation* driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_L); + CAnimBlendAssociation* driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); if (!driveByAssoc) - driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_R); + driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); if (!driveByAssoc) - driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_LOW_L); + driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT_LO); if (!driveByAssoc) - driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_LOW_R); + driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT_LO); if (m_pMyVehicle->bLowVehicle || m_pMyVehicle->m_fGasPedal >= 0.0f || driveByAssoc || m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI || m_pMyVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_PLANE) { @@ -4104,11 +4104,11 @@ CPed::DriveVehicle(void) if (rDriveAssoc) rDriveAssoc->blendAmount = clamp(steerAngle * -100.0f / 61.0f, 0.0f, 1.0f); else if (m_pMyVehicle->IsBoat() && !(m_pMyVehicle->pHandling->Flags & HANDLING_SIT_IN_BOAT)) - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT_R); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_BOAT_DRIVE_RIGHT); else if (m_pMyVehicle->bLowVehicle) - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_LOW_R); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVE_RIGHT_LO); else - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_R); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVE_RIGHT); } else { if (rDriveAssoc) @@ -4117,11 +4117,11 @@ CPed::DriveVehicle(void) if (lDriveAssoc) lDriveAssoc->blendAmount = clamp(steerAngle * 100.0f / 61.0f, 0.0f, 1.0f); else if (m_pMyVehicle->IsBoat() && !(m_pMyVehicle->pHandling->Flags & HANDLING_SIT_IN_BOAT)) - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT_L); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_BOAT_DRIVE_LEFT); else if (m_pMyVehicle->bLowVehicle) - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_LOW_L); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVE_LEFT_LO); else - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_L); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVE_LEFT); } if (lbAssoc) @@ -4133,9 +4133,9 @@ CPed::DriveVehicle(void) && (!lbAssoc || lbAssoc->blendAmount < 1.0f && lbAssoc->blendDelta <= 0.0f)) { if (m_pMyVehicle->IsBoat() && !(m_pMyVehicle->pHandling->Flags & HANDLING_SIT_IN_BOAT)) - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_BOAT_LB, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_BOAT_LOOKBEHIND, 4.0f); else - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_LB, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_LOOKBEHIND, 4.0f); } } } @@ -4146,32 +4146,32 @@ CPed::RemoveWeaponAnims(int unused, float animDelta) CAnimBlendAssociation *weaponAssoc; //CWeaponInfo::GetWeaponInfo(unused); - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE_2ND); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_2); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE_3RD); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_3); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_RELOAD); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA1); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_CROUCHRELOAD); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); if (weaponAssoc) { weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; if (weaponAssoc->flags & ASSOC_PARTIAL) weaponAssoc->blendDelta = animDelta; else - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, -animDelta); + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, -animDelta); } } diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index fd0bf643..e457189a 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -246,7 +246,7 @@ CPlayerPed::MakeChangesForNewWeapon(int32 slot) void CPlayerPed::ReApplyMoveAnims(void) { - static AnimationId moveAnims[] = { ANIM_WALK, ANIM_RUN, ANIM_SPRINT, ANIM_IDLE_STANCE, ANIM_WALK_START }; + static AnimationId moveAnims[] = { ANIM_STD_WALK, ANIM_STD_RUN, ANIM_STD_RUNFAST, ANIM_STD_IDLE, ANIM_STD_STARTWALK }; for(int i = 0; i < ARRAY_SIZE(moveAnims); i++) { CAnimBlendAssociation *curMoveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), moveAnims[i]); @@ -311,13 +311,13 @@ CPlayerPed::SetInitialState(void) void CPlayerPed::SetRealMoveAnim(void) { - CAnimBlendAssociation *curWalkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK); - CAnimBlendAssociation *curRunAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN); - CAnimBlendAssociation *curSprintAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_SPRINT); - CAnimBlendAssociation *curWalkStartAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WALK_START); - CAnimBlendAssociation *curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_STANCE); - CAnimBlendAssociation *curRunStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP); - CAnimBlendAssociation *curRunStopRAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_RUN_STOP_R); + CAnimBlendAssociation *curWalkAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_WALK); + CAnimBlendAssociation *curRunAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUN); + CAnimBlendAssociation *curSprintAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNFAST); + CAnimBlendAssociation *curWalkStartAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_STARTWALK); + CAnimBlendAssociation *curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE); + CAnimBlendAssociation *curRunStopAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP1); + CAnimBlendAssociation *curRunStopRAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_RUNSTOP2); if (bResetWalkAnims) { if (curWalkAssoc) curWalkAssoc->SetCurrentTime(0.0f); @@ -329,11 +329,11 @@ CPlayerPed::SetRealMoveAnim(void) } if (!curIdleAssoc) - curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); + curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); if (!curIdleAssoc) - curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); + curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if (!curIdleAssoc) - curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); + curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); if (!((curRunStopAssoc && curRunStopAssoc->IsRunning()) || (curRunStopRAssoc && curRunStopRAssoc->IsRunning()))) { @@ -352,10 +352,10 @@ CPlayerPed::SetRealMoveAnim(void) if (!curIdleAssoc) { if (m_fCurrentStamina < 0.0f && !bIsAimingGun && !CWorld::TestSphereAgainstWorld(GetPosition(), 0.5f, nil, true, false, false, false, false, false)) { - curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 8.0f); + curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 8.0f); } else { - curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 8.0f); + curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 8.0f); } m_nWaitTimer = CTimer::GetTimeInMilliseconds() + CGeneral::GetRandomNumberInRange(2500, 4000); } @@ -366,25 +366,25 @@ CPlayerPed::SetRealMoveAnim(void) if (!curIdleAssoc) { if (m_fCurrentStamina < 0.0f && !bIsAimingGun && !CWorld::TestSphereAgainstWorld(GetPosition(), 0.5f, nil, true, false, false, false, false, false)) { - curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 4.0f); + curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 4.0f); } else { - curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); + curIdleAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); } m_nWaitTimer = CTimer::GetTimeInMilliseconds() + CGeneral::GetRandomNumberInRange(2500, 4000); } - if ((m_fCurrentStamina > 0.0f || bIsAimingGun) && curIdleAssoc->animId == ANIM_IDLE_TIRED) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); + if ((m_fCurrentStamina > 0.0f || bIsAimingGun) && curIdleAssoc->animId == ANIM_STD_IDLE_TIRED) { + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); } else if (m_nPedState != PED_FIGHT) { - if (m_fCurrentStamina < 0.0f && !bIsAimingGun && curIdleAssoc->animId != ANIM_IDLE_TIRED + if (m_fCurrentStamina < 0.0f && !bIsAimingGun && curIdleAssoc->animId != ANIM_STD_IDLE_TIRED && !CWorld::TestSphereAgainstWorld(GetPosition(), 0.5f, nil, true, false, false, false, false, false)) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_TIRED, 4.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE_TIRED, 4.0f); - } else if (curIdleAssoc->animId != ANIM_IDLE_STANCE) { - CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_IDLE_STANCE, 4.0f); + } else if (curIdleAssoc->animId != ANIM_STD_IDLE) { + CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_IDLE, 4.0f); } } m_nMoveState = PEDMOVE_STILL; @@ -395,7 +395,7 @@ CPlayerPed::SetRealMoveAnim(void) curWalkStartAssoc->blendAmount = 1.0f; curWalkStartAssoc->blendDelta = 0.0f; } else { - curWalkStartAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_WALK_START); + curWalkStartAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_STD_STARTWALK); } if (curWalkAssoc) curWalkAssoc->SetCurrentTime(0.0f); @@ -403,10 +403,10 @@ CPlayerPed::SetRealMoveAnim(void) curRunAssoc->SetCurrentTime(0.0f); delete curIdleAssoc; - delete RpAnimBlendClumpGetAssociation(GetClump(), ANIM_IDLE_TIRED); - CAnimBlendAssociation *fightIdleAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FIGHT_IDLE); + delete RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); + CAnimBlendAssociation *fightIdleAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if (!fightIdleAnim) - fightIdleAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); + fightIdleAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); delete fightIdleAnim; delete curSprintAssoc; @@ -422,11 +422,11 @@ CPlayerPed::SetRealMoveAnim(void) RestoreHeadingRate(); } if (!curWalkAssoc) { - curWalkAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_WALK); + curWalkAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_STD_WALK); curWalkAssoc->blendAmount = 0.0f; } if (!curRunAssoc) { - curRunAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_RUN); + curRunAssoc = CAnimManager::AddAnimation(GetClump(), m_animGroup, ANIM_STD_RUN); curRunAssoc->blendAmount = 0.0f; } if (curWalkStartAssoc && !(curWalkStartAssoc->IsRunning())) { @@ -453,9 +453,9 @@ CPlayerPed::SetRealMoveAnim(void) if (m_fMoveSpeed < 0.4f) { AnimationId runStopAnim; if (curSprintAssoc->GetProgress() < 0.5) // double - runStopAnim = ANIM_RUN_STOP; + runStopAnim = ANIM_STD_RUNSTOP1; else - runStopAnim = ANIM_RUN_STOP_R; + runStopAnim = ANIM_STD_RUNSTOP2; CAnimBlendAssociation* newRunStopAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, runStopAnim); newRunStopAssoc->blendAmount = 1.0f; newRunStopAssoc->SetDeleteCallback(RestoreHeadingRateCB, this); @@ -498,7 +498,7 @@ CPlayerPed::SetRealMoveAnim(void) // Transition between run-sprint curWalkAssoc->blendAmount = 0.0f; curRunAssoc->blendAmount = 1.0f; - curSprintAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_SPRINT, 2.0f); + curSprintAssoc = CAnimManager::BlendAnimation(GetClump(), m_animGroup, ANIM_STD_RUNFAST, 2.0f); } UseSprintEnergy(); } else { @@ -629,14 +629,14 @@ CPlayerPed::DoesTargetHaveToBeBroken(CVector target, CWeapon *weaponUsed) void CPlayerPed::RunningLand(CPad *padUsed) { - CAnimBlendAssociation *landAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_FALL_LAND); + CAnimBlendAssociation *landAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL_LAND); if (landAssoc && landAssoc->currentTime == 0.0f && m_fMoveSpeed > 1.5f && padUsed && (padUsed->GetPedWalkLeftRight() != 0.0f || padUsed->GetPedWalkUpDown() != 0.0f)) { landAssoc->blendDelta = -1000.0f; landAssoc->flags |= ASSOC_DELETEFADEDOUT; - CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_JUMP_LAND)->SetFinishCallback(FinishJumpCB, this); + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_JUMP_LAND)->SetFinishCallback(FinishJumpCB, this); if (m_nPedState == PED_JUMP) RestorePreviousState(); @@ -1258,7 +1258,7 @@ CPlayerPed::ProcessPlayerWeapon(CPad *padUsed) TheCamera.SetNewPlayerWeaponMode(CCam::MODE_M16_1STPERSON, 0, 0); m_fMoveSpeed = 0.0f; - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_IDLE_STANCE, 1000.0f); + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_IDLE, 1000.0f); SetPedState(PED_SNIPER_MODE); return; } @@ -1700,24 +1700,24 @@ CPlayerPed::ProcessControl(void) if (m_nPedState == PED_DRIVING && m_objective != OBJECTIVE_LEAVE_CAR) { if (!CReplay::IsPlayingBack() || m_pMyVehicle) { if (m_pMyVehicle->IsCar() && ((CAutomobile*)m_pMyVehicle)->Damage.GetDoorStatus(DOOR_FRONT_LEFT) == DOOR_STATUS_SWINGING) { - CAnimBlendAssociation *rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLDOOR); + CAnimBlendAssociation *rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS); - if (m_pMyVehicle->m_nGettingOutFlags & CAR_DOOR_FLAG_LF || rollDoorAssoc || (rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLDOOR_LOW))) { + if (m_pMyVehicle->m_nGettingOutFlags & CAR_DOOR_FLAG_LF || rollDoorAssoc || (rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS))) { if (rollDoorAssoc) - m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR, rollDoorAssoc->currentTime); + m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, rollDoorAssoc->currentTime); } else { // These comparisons are wrong, they return uint16 if (padUsed && (padUsed->GetAccelerate() != 0.0f || padUsed->GetSteeringLeftRight() != 0.0f || padUsed->GetBrake() != 0.0f)) { if (rollDoorAssoc) - m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR, rollDoorAssoc->currentTime); + m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS, rollDoorAssoc->currentTime); } else { m_pMyVehicle->m_nGettingOutFlags |= CAR_DOOR_FLAG_LF; if (m_pMyVehicle->bLowVehicle) - rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLDOOR_LOW); + rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS); else - rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLDOOR); + rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS); rollDoorAssoc->SetFinishCallback(PedAnimDoorCloseRollingCB, this); } @@ -1947,11 +1947,11 @@ CPlayerPed::PlayIdleAnimations(CPad *padUsed) }; const animAndGroup idleAnims[] = { - {ANIM_IDLE_STRETCH, ASSOCGRP_PLAYER_IDLE}, - {ANIM_IDLE_TIME, ASSOCGRP_PLAYER_IDLE}, - {ANIM_IDLE_SHOULDER, ASSOCGRP_PLAYER_IDLE}, - {ANIM_IDLE_STRETCH_LEG, ASSOCGRP_PLAYER_IDLE}, - {ANIM_XPRESS_SCRATCH, ASSOCGRP_STD}, + {ANIM_PLAYER_IDLE1, ASSOCGRP_PLAYER_IDLE}, + {ANIM_PLAYER_IDLE2, ASSOCGRP_PLAYER_IDLE}, + {ANIM_PLAYER_IDLE3, ASSOCGRP_PLAYER_IDLE}, + {ANIM_PLAYER_IDLE4, ASSOCGRP_PLAYER_IDLE}, + {ANIM_STD_XPRESS_SCRATCH, ASSOCGRP_STD}, }; static int32 lastTime = 0; diff --git a/src/render/WaterCannon.cpp b/src/render/WaterCannon.cpp index 53b4d30e..da05a1ca 100644 --- a/src/render/WaterCannon.cpp +++ b/src/render/WaterCannon.cpp @@ -242,7 +242,7 @@ void CWaterCannon::PushPeds(void) ped->m_vecMoveSpeed.x *= (0.2f / pedSpeed2D); ped->m_vecMoveSpeed.y *= (0.2f / pedSpeed2D); } - ped->SetFall(2000, (AnimationId)(localDir + ANIM_KO_SKID_FRONT), 0); + ped->SetFall(2000, (AnimationId)(localDir + ANIM_STD_HIGHIMPACT_FRONT), 0); CParticle::AddParticle(PARTICLE_STEAM_NY_SLOWMOTION, ped->GetPosition(), ped->m_vecMoveSpeed * 0.3f, 0, 0.5f); CParticle::AddParticle(PARTICLE_CAR_SPLASH, ped->GetPosition(), ped->m_vecMoveSpeed * -0.3f + CVector(0.f, 0.f, 0.5f), 0, 0.5f, CGeneral::GetRandomNumberInRange(0.f, 10.f), CGeneral::GetRandomNumberInRange(0.f, 90.f), 1); diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index f1bbf08f..cdc500e7 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -3091,8 +3091,8 @@ CAutomobile::ProcessControlInputs(uint8 pad) float speed = DotProduct(m_vecMoveSpeed, GetForward()); if(!CPad::GetPad(pad)->GetExitVehicle() || - pDriver && pDriver->m_pVehicleAnim && (pDriver->m_pVehicleAnim->animId == ANIM_CAR_ROLLOUT_LHS || - pDriver->m_pVehicleAnim->animId == ANIM_CAR_ROLLOUT_RHS)) + pDriver && pDriver->m_pVehicleAnim && (pDriver->m_pVehicleAnim->animId == ANIM_STD_ROLLOUT_LHS || + pDriver->m_pVehicleAnim->animId == ANIM_STD_ROLLOUT_RHS)) bIsHandbrakeOn = !!CPad::GetPad(pad)->GetHandBrake(); else bIsHandbrakeOn = true; @@ -3874,11 +3874,11 @@ CAutomobile::DoDriveByShootings(void) lookingRight = true; } - AnimationId rightAnim = ANIM_DRIVEBY_R; - AnimationId leftAnim = ANIM_DRIVEBY_L; + AnimationId rightAnim = ANIM_STD_CAR_DRIVEBY_RIGHT; + AnimationId leftAnim = ANIM_STD_CAR_DRIVEBY_LEFT; if (pDriver->m_pMyVehicle->bLowVehicle) { - rightAnim = ANIM_DRIVEBY_LOW_R; - leftAnim = ANIM_DRIVEBY_LOW_L; + rightAnim = ANIM_STD_CAR_DRIVEBY_RIGHT_LO; + leftAnim = ANIM_STD_CAR_DRIVEBY_LEFT_LO; } if(lookingLeft || lookingRight){ @@ -3917,11 +3917,11 @@ CAutomobile::DoDriveByShootings(void) // TODO: what is this? if(!lookingLeft && m_weaponDoorTimerLeft > 0.0f){ m_weaponDoorTimerLeft = Max(m_weaponDoorTimerLeft - CTimer::GetTimeStep()*0.1f, 0.0f); - ProcessOpenDoor(CAR_DOOR_LF, NUM_STD_ANIMS, m_weaponDoorTimerLeft); + ProcessOpenDoor(CAR_DOOR_LF, ANIM_STD_NUM, m_weaponDoorTimerLeft); } if(!lookingRight && m_weaponDoorTimerRight > 0.0f){ m_weaponDoorTimerRight = Max(m_weaponDoorTimerRight - CTimer::GetTimeStep()*0.1f, 0.0f); - ProcessOpenDoor(CAR_DOOR_RF, NUM_STD_ANIMS, m_weaponDoorTimerRight); + ProcessOpenDoor(CAR_DOOR_RF, ANIM_STD_NUM, m_weaponDoorTimerRight); } } @@ -4640,55 +4640,55 @@ CAutomobile::ProcessOpenDoor(uint32 component, uint32 anim, float time) return; switch(anim){ - case ANIM_CAR_QJACK: - case ANIM_CAR_OPEN_LHS: - case ANIM_CAR_OPEN_RHS: + case ANIM_STD_QUICKJACK: + case ANIM_STD_CAR_OPEN_DOOR_LHS: + case ANIM_STD_CAR_OPEN_DOOR_RHS: ProcessDoorOpenAnimation(this, component, door, time, 0.41f, 0.89f); break; - case ANIM_CAR_CLOSEDOOR_LHS: - case ANIM_CAR_CLOSEDOOR_LOW_LHS: - case ANIM_CAR_CLOSEDOOR_RHS: - case ANIM_CAR_CLOSEDOOR_LOW_RHS: + case ANIM_STD_CAR_CLOSE_DOOR_LHS: + case ANIM_STD_CAR_CLOSE_DOOR_LO_LHS: + case ANIM_STD_CAR_CLOSE_DOOR_RHS: + case ANIM_STD_CAR_CLOSE_DOOR_LO_RHS: ProcessDoorCloseAnimation(this, component, door, time, 0.2f, 0.45f); break; - case ANIM_CAR_ROLLDOOR: - case ANIM_CAR_ROLLDOOR_LOW: + case ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS: + case ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS: ProcessDoorOpenCloseAnimation(this, component, door, time, 0.1f, 0.6f, 0.95f); break; - case ANIM_CAR_GETOUT_LHS: - case ANIM_CAR_GETOUT_LOW_LHS: - case ANIM_CAR_GETOUT_RHS: - case ANIM_CAR_GETOUT_LOW_RHS: + case ANIM_STD_GETOUT_LHS: + case ANIM_STD_GETOUT_LO_LHS: + case ANIM_STD_GETOUT_RHS: + case ANIM_STD_GETOUT_LO_RHS: ProcessDoorOpenAnimation(this, component, door, time, 0.06f, 0.43f); break; - case ANIM_CAR_CLOSE_LHS: - case ANIM_CAR_CLOSE_RHS: + case ANIM_STD_CAR_CLOSE_LHS: + case ANIM_STD_CAR_CLOSE_RHS: ProcessDoorCloseAnimation(this, component, door, time, 0.1f, 0.23f); break; - case ANIM_CAR_PULLOUT_RHS: - case ANIM_CAR_PULLOUT_LOW_RHS: + case ANIM_STD_CAR_PULL_OUT_PED_RHS: + case ANIM_STD_CAR_PULL_OUT_PED_LO_RHS: OpenDoor(component, door, 1.0f); break; - case ANIM_COACH_OPEN_L: - case ANIM_COACH_OPEN_R: + case ANIM_STD_COACH_OPEN_LHS: + case ANIM_STD_COACH_OPEN_RHS: ProcessDoorOpenAnimation(this, component, door, time, 0.66f, 0.8f); break; - case ANIM_COACH_OUT_L: + case ANIM_STD_COACH_GET_OUT_LHS: ProcessDoorOpenAnimation(this, component, door, time, 0.0f, 0.3f); break; - case ANIM_VAN_OPEN_L: - case ANIM_VAN_OPEN: + case ANIM_STD_VAN_OPEN_DOOR_REAR_LHS: + case ANIM_STD_VAN_OPEN_DOOR_REAR_RHS: ProcessDoorOpenAnimation(this, component, door, time, 0.37f, 0.55f); break; - case ANIM_VAN_CLOSE_L: - case ANIM_VAN_CLOSE: + case ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS: + case ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS: ProcessDoorCloseAnimation(this, component, door, time, 0.5f, 0.8f); break; - case ANIM_VAN_GETOUT_L: - case ANIM_VAN_GETOUT: + case ANIM_STD_VAN_GET_OUT_REAR_LHS: + case ANIM_STD_VAN_GET_OUT_REAR_RHS: ProcessDoorOpenAnimation(this, component, door, time, 0.5f, 0.6f); break; - case NUM_STD_ANIMS: + case ANIM_STD_NUM: OpenDoor(component, door, time); break; } @@ -5821,13 +5821,13 @@ CAutomobile::CloseAllDoors(void) void CAutomobile::KnockPedOutCar(eWeaponType weapon, uint16 door, CPed *ped) { - AnimationId anim = ANIM_KO_SHOT_FRONT1; + AnimationId anim = ANIM_STD_KO_FRONT; if(ped == nil) return; ped->m_vehDoor = door; ped->SetPedState(PED_IDLE); - CAnimManager::BlendAnimation(ped->GetClump(), ped->m_animGroup, ANIM_IDLE_STANCE, 100.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ped->m_animGroup, ANIM_STD_IDLE, 100.0f); CPed::PedSetOutCarCB(nil, ped); ped->SetMoveState(PEDMOVE_STILL); if(GetUp().z < 0.0f) @@ -5840,14 +5840,14 @@ CAutomobile::KnockPedOutCar(eWeaponType weapon, uint16 door, CPed *ped) case WEAPONTYPE_UNIDENTIFIED: ped->m_vecMoveSpeed = m_vecMoveSpeed; ped->m_pCollidingEntity = this; - anim = NUM_STD_ANIMS; + anim = ANIM_STD_NUM; break; case WEAPONTYPE_BASEBALLBAT: case WEAPONTYPE_RAMMEDBYCAR: case WEAPONTYPE_FALL: ped->m_vecMoveSpeed = m_vecMoveSpeed; - anim = ANIM_KD_LEFT; + anim = ANIM_STD_SPINFORWARD_LEFT; ApplyMoveForce(4.0f*GetUp() + 8.0f*GetRight()); break; } diff --git a/src/vehicles/Bike.cpp b/src/vehicles/Bike.cpp index a84a43e5..3e4c3a31 100644 --- a/src/vehicles/Bike.cpp +++ b/src/vehicles/Bike.cpp @@ -572,7 +572,7 @@ CBike::ProcessControl(void) // Lean forward speed up float savedAirResistance = m_fAirResistance; if(GetStatus() == STATUS_PLAYER && pDriver){ - CAnimBlendAssociation *assoc = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_FWD); + CAnimBlendAssociation *assoc = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_LEANF); if(assoc && assoc->blendAmount > 0.5f && assoc->currentTime > 0.06f && assoc->currentTime < 0.14f){ m_fAirResistance *= 0.6f; @@ -1013,7 +1013,7 @@ CBike::ProcessControl(void) // Process leaning float idleAngle = 0.0f; if(pDriver){ - CAnimBlendAssociation *assoc = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_STILL); + CAnimBlendAssociation *assoc = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_READY); if(assoc) idleAngle = DEGTORAD(10.0f) * assoc->blendAmount; } @@ -2034,35 +2034,35 @@ CBike::DoDriveByShootings(void) if(lookingLeft || lookingRight || CPad::GetPad(0)->GetCarGunFired()){ if(lookingLeft){ - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_LHS); - if(anim) - anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_FT); - if(anim) - anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_RHS); - if(anim == nil || anim->blendDelta < 0.0f) - anim = CAnimManager::AddAnimation(pDriver->GetClump(), m_bikeAnimType, ANIM_BIKE_DRIVEBY_RHS); - }else if(lookingRight){ anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_RHS); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_FT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_FORWARD); if(anim) anim->blendDelta = -1000.0f; anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_LHS); if(anim == nil || anim->blendDelta < 0.0f) anim = CAnimManager::AddAnimation(pDriver->GetClump(), m_bikeAnimType, ANIM_BIKE_DRIVEBY_LHS); - }else{ + }else if(lookingRight){ anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_LHS); if(anim) anim->blendDelta = -1000.0f; + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_FORWARD); + if(anim) + anim->blendDelta = -1000.0f; + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_RHS); + if(anim == nil || anim->blendDelta < 0.0f) + anim = CAnimManager::AddAnimation(pDriver->GetClump(), m_bikeAnimType, ANIM_BIKE_DRIVEBY_RHS); + }else{ anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_RHS); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_FT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_LHS); + if(anim) + anim->blendDelta = -1000.0f; + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_FORWARD); if(anim == nil || anim->blendDelta < 0.0f) - anim = CAnimManager::AddAnimation(pDriver->GetClump(), m_bikeAnimType, ANIM_BIKE_DRIVEBY_FT); + anim = CAnimManager::AddAnimation(pDriver->GetClump(), m_bikeAnimType, ANIM_BIKE_DRIVEBY_FORWARD); } if (!anim || !anim->IsRunning()) { @@ -2073,13 +2073,13 @@ CBike::DoDriveByShootings(void) } }else{ weapon->Reload(); - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_RHS); - if(anim) - anim->blendDelta = -1000.0f; anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_LHS); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_FT); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_RHS); + if(anim) + anim->blendDelta = -1000.0f; + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_BIKE_DRIVEBY_FORWARD); if(anim) anim->blendDelta = -1000.0f; } @@ -2573,7 +2573,7 @@ CBike::PlayCarHorn(void) void CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBackOn) { - AnimationId anim = ANIM_KO_SHOT_FRONT1; + AnimationId anim = ANIM_STD_KO_FRONT; if(ped == nil) return; @@ -2611,7 +2611,7 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa } ped->SetPedState(PED_IDLE); - CAnimManager::BlendAnimation(ped->GetClump(), ped->m_animGroup, ANIM_IDLE_STANCE, 100.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ped->m_animGroup, ANIM_STD_IDLE, 100.0f); ped->m_vehDoor = CAR_DOOR_LF; CPed::PedSetOutCarCB(nil, ped); ped->SetMoveState(PEDMOVE_STILL); @@ -2625,14 +2625,14 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa case WEAPONTYPE_UNIDENTIFIED: ped->m_vecMoveSpeed = m_vecMoveSpeed; ped->m_pCollidingEntity = this; - anim = NUM_STD_ANIMS; + anim = ANIM_STD_NUM; break; case WEAPONTYPE_BASEBALLBAT: default: switch(direction){ case 0: - anim = ANIM_BIKE_FALL_R; + anim = ANIM_STD_BIKE_FALLBACK; ped->m_vecMoveSpeed = CVector(0.0f, 0.0f, 0.1f); if(m_vecMoveSpeed.MagnitudeSqr() < SQR(0.3f)) ped->ApplyMoveForce(5.0f*GetUp() - 6.0f*GetForward()); @@ -2641,11 +2641,11 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa case 1: case 2: if(m_vecMoveSpeed.MagnitudeSqr() > SQR(0.3f)){ - anim = ANIM_KO_SPIN_R; + anim = ANIM_STD_HIGHIMPACT_LEFT; ped->m_vecMoveSpeed = 0.3f*m_vecMoveSpeed; ped->ApplyMoveForce(5.0f*GetUp() + 6.0f*GetRight()); }else{ - anim = ANIM_KD_LEFT; + anim = ANIM_STD_SPINFORWARD_LEFT; ped->m_vecMoveSpeed = m_vecMoveSpeed; ped->ApplyMoveForce(4.0f*GetUp() + 8.0f*GetRight()); } @@ -2654,11 +2654,11 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa break; case 3: if(m_vecMoveSpeed.MagnitudeSqr() > SQR(0.3f)){ - anim = ANIM_KO_SPIN_L; + anim = ANIM_STD_HIGHIMPACT_RIGHT; ped->m_vecMoveSpeed = 0.3f*m_vecMoveSpeed; ped->ApplyMoveForce(5.0f*GetUp() - 6.0f*GetRight()); }else{ - anim = ANIM_KD_RIGHT; + anim = ANIM_STD_SPINFORWARD_RIGHT; ped->m_vecMoveSpeed = m_vecMoveSpeed; ped->ApplyMoveForce(4.0f*GetUp() - 8.0f*GetRight()); } @@ -2670,7 +2670,7 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa case WEAPONTYPE_DROWNING:{ RwRGBA color; - anim = ANIM_FALL_FALL; + anim = ANIM_STD_FALL; ped->m_vecMoveSpeed = m_vecMoveSpeed*0.2f; ped->m_vecMoveSpeed.z = 0.0f; ped->m_pCollidingEntity = this; @@ -2695,10 +2695,10 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa CGeneral::GetRandomNumberInRange(3.0f, 7.0f)); ped->m_pCollidingEntity = this; switch(direction){ - case 0: anim = ANIM_KO_SKID_BACK; break; - case 1: anim = ANIM_KD_RIGHT; break; - case 2: anim = ANIM_BIKE_FALL_R; break; - case 3: anim = ANIM_KD_LEFT; break; + case 0: anim = ANIM_STD_HIGHIMPACT_BACK; break; + case 1: anim = ANIM_STD_SPINFORWARD_RIGHT; break; + case 2: anim = ANIM_STD_BIKE_FALLBACK; break; + case 3: anim = ANIM_STD_SPINFORWARD_LEFT; break; } if(m_nWheelsOnGround == 0) ped->bKnockedOffBike = true; @@ -2714,10 +2714,10 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa CGeneral::GetRandomNumberInRange(minForceZ, maxForceZ)); ped->m_pCollidingEntity = this; switch(direction){ - case 0: anim = ANIM_KO_SKID_BACK; break; - case 1: anim = ANIM_KD_RIGHT; break; - case 2: anim = ANIM_KO_SKID_FRONT; break; - case 3: anim = ANIM_KD_LEFT; break; + case 0: anim = ANIM_STD_HIGHIMPACT_BACK; break; + case 1: anim = ANIM_STD_SPINFORWARD_RIGHT; break; + case 2: anim = ANIM_STD_HIGHIMPACT_FRONT; break; + case 3: anim = ANIM_STD_SPINFORWARD_LEFT; break; } ped->bKnockedOffBike = true; if(ped->IsPlayer()) @@ -2732,7 +2732,7 @@ CBike::KnockOffRider(eWeaponType weapon, uint8 direction, CPed *ped, bool bGetBa ped->bIsInTheAir = true; ped->bIsInWater = true; ped->bTouchingWater = true; - CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_FALL_FALL, 4.0f); + CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_STD_FALL, 4.0f); }else if(weapon != WEAPONTYPE_UNARMED){ if(ped->m_fHealth > 0.0f) ped->SetFall(1000, anim, 0); diff --git a/src/vehicles/Boat.cpp b/src/vehicles/Boat.cpp index 46dec193..0bc653c6 100644 --- a/src/vehicles/Boat.cpp +++ b/src/vehicles/Boat.cpp @@ -1439,19 +1439,19 @@ CBoat::DoDriveByShootings(void) if(lookingLeft || lookingRight){ if(lookingLeft){ - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); if(anim == nil || anim->blendDelta < 0.0f) - anim = CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_DRIVEBY_L); + anim = CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVEBY_LEFT); }else if(pDriver->m_pMyVehicle->pPassengers[0] == nil || TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON){ - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); if(anim == nil || anim->blendDelta < 0.0f) - anim = CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_DRIVEBY_R); + anim = CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_STD_CAR_DRIVEBY_RIGHT); } if (!anim || !anim->IsRunning()) { @@ -1462,10 +1462,10 @@ CBoat::DoDriveByShootings(void) } }else{ weapon->Reload(); - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_LEFT); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_STD_CAR_DRIVEBY_RIGHT); if(anim) anim->blendDelta = -1000.0f; } diff --git a/src/vehicles/Heli.cpp b/src/vehicles/Heli.cpp index 38550c38..bf14416c 100644 --- a/src/vehicles/Heli.cpp +++ b/src/vehicles/Heli.cpp @@ -737,7 +737,7 @@ CHeli::SendDownSwat(void) m_numSwat--; swat->m_nRopeID = (uintptr)this + m_numSwat; m_aSwatState[m_numSwat] = 255; - CAnimManager::BlendAnimation(swat->GetClump(), ASSOCGRP_STD, ANIM_ABSEIL, 4.0f); + CAnimManager::BlendAnimation(swat->GetClump(), ASSOCGRP_STD, ANIM_STD_ABSEIL, 4.0f); return true; } return false; diff --git a/src/weapons/BulletInfo.cpp b/src/weapons/BulletInfo.cpp index 445f31a0..b49db74a 100644 --- a/src/weapons/BulletInfo.cpp +++ b/src/weapons/BulletInfo.cpp @@ -131,7 +131,7 @@ void CBulletInfo::Update(void) if (!pPed->DyingOrDead() && pPed != pBullet->m_pSource) { if (pPed->IsPedInControl() && !pPed->bIsDucking) { pPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation* pAnim = CAnimManager::AddAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_SHOT_FRONT_PARTIAL); + CAnimBlendAssociation* pAnim = CAnimManager::AddAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HITBYGUN_FRONT); pAnim->SetBlend(0.0f, 8.0f); } pPed->InflictDamage(pBullet->m_pSource, pBullet->m_eWeaponType, pBullet->m_nDamage, (ePedPieceTypes)point.pieceB, pPed->GetLocalDirection(pPed->GetPosition() - point.point)); @@ -152,9 +152,9 @@ void CBulletInfo::Update(void) if (pPed->GetPedState() == PED_DEAD) { CAnimBlendAssociation* pAnim; if (RpAnimBlendClumpGetFirstAssociation(pPed->GetClump(), ASSOC_FRONTAL)) - pAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f); + pAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f); else - pAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT, 8.0f); + pAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR, 8.0f); if (pAnim) { pAnim->SetCurrentTime(0.0f); pAnim->flags |= ASSOC_RUNNING; diff --git a/src/weapons/Weapon.cpp b/src/weapons/Weapon.cpp index 3ef7d2a1..7a54941f 100644 --- a/src/weapons/Weapon.cpp +++ b/src/weapons/Weapon.cpp @@ -676,9 +676,9 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource) victimPed->ApplyMoveForce(posOffset.x*-5.0f, posOffset.y*-5.0f, 3.0f); if ( isHeavy && victimPed->IsPlayer() ) - victimPed->SetFall(3000, AnimationId(ANIM_KO_SKID_FRONT + localDir), false); + victimPed->SetFall(3000, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), false); else - victimPed->SetFall(1500, AnimationId(ANIM_KO_SKID_FRONT + localDir), false); + victimPed->SetFall(1500, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), false); shooterPed->m_pSeekTarget = victimPed; shooterPed->m_pSeekTarget->RegisterReference(&shooterPed->m_pSeekTarget); @@ -1351,7 +1351,7 @@ CWeapon::DoBulletImpact(CEntity *shooter, CEntity *victim, victimPed->bIsStanding = false; victimPed->ApplyMoveForce(posOffset.x*-5.0f, posOffset.y*-5.0f, 5.0f); - victimPed->SetFall(1500, AnimationId(ANIM_KO_SKID_FRONT + localDir), false); + victimPed->SetFall(1500, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), false); victimPed->InflictDamage(shooter, m_eWeaponType, info->m_nDamage, (ePedPieceTypes)point->pieceB, localDir); } @@ -1364,7 +1364,7 @@ CWeapon::DoBulletImpact(CEntity *shooter, CEntity *victim, { victimPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_SHOT_FRONT_PARTIAL + localDir)); + CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_STD_HITBYGUN_FRONT + localDir)); ASSERT(asoc!=nil); asoc->blendAmount = 0.0f; @@ -1380,7 +1380,7 @@ CWeapon::DoBulletImpact(CEntity *shooter, CEntity *victim, { victimPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_SHOT_FRONT_PARTIAL + localDir)); + CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_STD_HITBYGUN_FRONT + localDir)); ASSERT(asoc!=nil); asoc->blendAmount = 0.0f; @@ -1436,9 +1436,9 @@ CWeapon::DoBulletImpact(CEntity *shooter, CEntity *victim, { CAnimBlendAssociation *asoc; if ( RpAnimBlendClumpGetFirstAssociation(victimPed->GetClump(), ASSOC_FRONTAL) ) - asoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f); + asoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f); else - asoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT, 8.0f); + asoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR, 8.0f); if ( asoc ) { @@ -1809,7 +1809,7 @@ CWeapon::FireShotgun(CEntity *shooter, CVector *fireSource) victimPed->ApplyMoveForce(posOffset.x*-2.0f, posOffset.y*-2.0f, 0.0f); if ( cantStandup ) - victimPed->SetFall(1500, AnimationId(ANIM_KO_SKID_FRONT + localDir), false); + victimPed->SetFall(1500, AnimationId(ANIM_STD_HIGHIMPACT_FRONT + localDir), false); victimPed->InflictDamage(shooter, m_eWeaponType, info->m_nDamage, (ePedPieceTypes)point.pieceB, localDir); @@ -1849,11 +1849,11 @@ CWeapon::FireShotgun(CEntity *shooter, CVector *fireSource) CAnimBlendAssociation *hitAssoc; if (RpAnimBlendClumpGetFirstAssociation(victimPed->GetClump(), ASSOC_FRONTAL)) { - hitAssoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT_F, 8.0f); + hitAssoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR_FRONT, 8.0f); } else { - hitAssoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_FLOOR_HIT, 8.0f); + hitAssoc = CAnimManager::BlendAnimation(victimPed->GetClump(), ASSOCGRP_STD, ANIM_STD_HIT_FLOOR, 8.0f); } if (hitAssoc) { @@ -2535,7 +2535,7 @@ CWeapon::FireInstantHitFromCar(CVehicle *shooter, bool left, bool right) victimPed->ReactToAttack(FindPlayerPed()); victimPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_SHOT_FRONT_PARTIAL + localDir)); + CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_STD_HITBYGUN_FRONT + localDir)); ASSERT(asoc!=nil); asoc->blendAmount = 0.0f; asoc->blendDelta = 8.0f; @@ -2968,7 +2968,7 @@ FireOneInstantHitRound(CVector *source, CVector *target, int32 damage) victimPed->ClearAttackByRemovingAnim(); - CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_SHOT_FRONT_PARTIAL + localDir)); + CAnimBlendAssociation *asoc = CAnimManager::AddAnimation(victimPed->GetClump(), ASSOCGRP_STD, AnimationId(ANIM_STD_HITBYGUN_FRONT + localDir)); ASSERT(asoc!=nil); asoc->blendAmount = 0.0f; asoc->blendDelta = 8.0f; From 97cf189d15b603055cd3371b5c726498892353ba Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 27 Jan 2021 20:19:22 +0200 Subject: [PATCH 005/113] Fix subtitle shadow --- src/render/Hud.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index b7c78eb1..9c543043 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -1172,7 +1172,13 @@ void CHud::Draw() CFont::SetBackgroundColor(CRGBA(0, 0, 0, 128)); CFont::SetCentreOn(); CFont::SetPropOn(); - CFont::SetDropShadowPosition(0); +#ifdef CUTSCENE_BORDERS_SWITCH + if (!FrontEndMenuManager.m_PrefsCutsceneBorders) + CFont::SetDropShadowPosition(2); + else +#else + CFont::SetDropShadowPosition(0); +#endif CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); CFont::SetColor(CRGBA(225, 225, 225, 255)); @@ -1182,10 +1188,6 @@ void CHud::Draw() onceItWasWidescreen = true; if (FrontEndMenuManager.m_PrefsShowSubtitles || !CCutsceneMgr::IsRunning()) { -#ifdef CUTSCENE_BORDERS_SWITCH - if (!FrontEndMenuManager.m_PrefsCutsceneBorders) - CFont::SetDropShadowPosition(2); -#endif CFont::SetCentreSize(SCREEN_WIDTH - SCREEN_SCALE_X(60.0f)); CFont::SetScale(SCREEN_SCALE_X(0.58f), SCREEN_SCALE_Y(1.2f)); CFont::PrintString(SCREEN_WIDTH / 2.f, SCREEN_SCALE_FROM_BOTTOM(80.0f), m_Message); From e8a10748a44448825b379a4db5ad46677cb291ce Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 27 Jan 2021 20:39:22 +0200 Subject: [PATCH 006/113] fix fix --- src/render/Hud.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index 9c543043..a0f3c3ee 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -1176,9 +1176,8 @@ void CHud::Draw() if (!FrontEndMenuManager.m_PrefsCutsceneBorders) CFont::SetDropShadowPosition(2); else -#else - CFont::SetDropShadowPosition(0); #endif + CFont::SetDropShadowPosition(0); CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); CFont::SetColor(CRGBA(225, 225, 225, 255)); From ab939e059b4263fec4e26425bce6a12ecf88d2e6 Mon Sep 17 00:00:00 2001 From: erorcun Date: Wed, 27 Jan 2021 18:26:08 +0300 Subject: [PATCH 007/113] Clean up POSIX streaming code --- src/core/CdStream.h | 2 +- src/core/CdStreamPosix.cpp | 29 +++++++------ src/core/Streaming.cpp | 86 +++++++++++++++++++++++++------------- src/core/Streaming.h | 4 ++ src/core/config.h | 11 +++-- src/skel/glfw/glfw.cpp | 7 +++- 6 files changed, 92 insertions(+), 47 deletions(-) diff --git a/src/core/CdStream.h b/src/core/CdStream.h index d0f9a855..516cef48 100644 --- a/src/core/CdStream.h +++ b/src/core/CdStream.h @@ -43,6 +43,6 @@ char *CdStreamGetImageName(int32 cd); void CdStreamRemoveImages(void); int32 CdStreamGetNumImages(void); -#ifndef _WIN32 +#ifdef FLUSHABLE_STREAMING extern bool flushStream[MAX_CDCHANNELS]; #endif diff --git a/src/core/CdStreamPosix.cpp b/src/core/CdStreamPosix.cpp index 0854d850..8a27665a 100644 --- a/src/core/CdStreamPosix.cpp +++ b/src/core/CdStreamPosix.cpp @@ -21,9 +21,9 @@ #define CDDEBUG(f, ...) debug ("%s: " f "\n", "cdvd_stream", ## __VA_ARGS__) #define CDTRACE(f, ...) printf("%s: " f "\n", "cdvd_stream", ## __VA_ARGS__) -// #define ONE_THREAD_PER_CHANNEL // Don't use if you're not on SSD/Flash. (Also you may want to benefit from this via using all channels in Streaming.cpp) - +#ifdef FLUSHABLE_STREAMING bool flushStream[MAX_CDCHANNELS]; +#endif struct CdReadInfo { @@ -99,6 +99,7 @@ CdStreamInitThread(void) ASSERT(0); return; } + #ifdef ONE_THREAD_PER_CHANNEL sprintf(semName,"/semaphore_start%d",i); gpReadInfo[i].pStartSemaphore = sem_open(semName, O_CREAT, 0644, 1); @@ -245,10 +246,12 @@ CdStreamRead(int32 channel, void *buffer, uint32 offset, uint32 size) if ( pChannel->nSectorsToRead != 0 || pChannel->bReading ) { if (pChannel->hFile == hImage - 1 && pChannel->nSectorOffset == _GET_OFFSET(offset) && pChannel->nSectorsToRead >= size) return STREAM_SUCCESS; - +#ifdef FLUSHABLE_STREAMING flushStream[channel] = 1; CdStreamSync(channel); - //return STREAM_NONE; +#else + return STREAM_NONE; +#endif } pChannel->hFile = hImage - 1; @@ -316,34 +319,34 @@ CdStreamSync(int32 channel) CdReadInfo *pChannel = &gpReadInfo[channel]; ASSERT( pChannel != nil ); +#ifdef FLUSHABLE_STREAMING if (flushStream[channel]) { -#ifdef ONE_THREAD_PER_CHANNEL pChannel->nSectorsToRead = 0; +#ifdef ONE_THREAD_PER_CHANNEL pthread_kill(pChannel->pChannelThread, SIGUSR1); if (pChannel->bReading) { pChannel->bLocked = true; - while (pChannel->bLocked) - sem_wait(pChannel->pDoneSemaphore); - } #else - pChannel->nSectorsToRead = 0; if (pChannel->bReading) { pChannel->bLocked = true; pthread_kill(_gCdStreamThread, SIGUSR1); +#endif while (pChannel->bLocked) sem_wait(pChannel->pDoneSemaphore); } -#endif pChannel->bReading = false; flushStream[channel] = false; return STREAM_NONE; } +#endif if ( pChannel->nSectorsToRead != 0 ) { pChannel->bLocked = true; - while (pChannel->bLocked) + while (pChannel->bLocked && pChannel->nSectorsToRead != 0){ sem_wait(pChannel->pDoneSemaphore); + } + pChannel->bLocked = false; } pChannel->bReading = false; @@ -447,7 +450,7 @@ void *CdStreamThread(void *param) if ( pChannel->bLocked ) { pChannel->bLocked = 0; - sem_post(pChannel->pDoneSemaphore); + sem_post(pChannel->pDoneSemaphore); } pChannel->bReading = false; } @@ -524,7 +527,9 @@ void CdStreamRemoveImages(void) { for ( int32 i = 0; i < gNumChannels; i++ ) { +#ifdef FLUSHABLE_STREAMING flushStream[i] = 1; +#endif CdStreamSync(i); } diff --git a/src/core/Streaming.cpp b/src/core/Streaming.cpp index 6f0e3153..b28a99fc 100644 --- a/src/core/Streaming.cpp +++ b/src/core/Streaming.cpp @@ -207,11 +207,15 @@ CStreaming::Init2(void) // allocate streaming buffers if(ms_streamingBufferSize & 1) ms_streamingBufferSize++; +#ifndef ONE_THREAD_PER_CHANNEL ms_pStreamingBuffer[0] = (int8*)RwMallocAlign(ms_streamingBufferSize*CDSTREAM_SECTOR_SIZE, CDSTREAM_SECTOR_SIZE); ms_streamingBufferSize /= 2; ms_pStreamingBuffer[1] = ms_pStreamingBuffer[0] + ms_streamingBufferSize*CDSTREAM_SECTOR_SIZE; -#ifdef ONE_THREAD_PER_CHANNEL - ms_pStreamingBuffer[2] = (int8*)RwMallocAlign(ms_streamingBufferSize*2*CDSTREAM_SECTOR_SIZE, CDSTREAM_SECTOR_SIZE); +#else + ms_pStreamingBuffer[0] = (int8*)RwMallocAlign(ms_streamingBufferSize*2*CDSTREAM_SECTOR_SIZE, CDSTREAM_SECTOR_SIZE); + ms_streamingBufferSize /= 2; + ms_pStreamingBuffer[1] = ms_pStreamingBuffer[0] + ms_streamingBufferSize*CDSTREAM_SECTOR_SIZE; + ms_pStreamingBuffer[2] = ms_pStreamingBuffer[1] + ms_streamingBufferSize*CDSTREAM_SECTOR_SIZE; ms_pStreamingBuffer[3] = ms_pStreamingBuffer[2] + ms_streamingBufferSize*CDSTREAM_SECTOR_SIZE; #endif debug("Streaming buffer size is %d sectors", ms_streamingBufferSize); @@ -2305,9 +2309,10 @@ CStreaming::LoadRequestedModels(void) } -// Let's load models first, then process it. Unfortunately processing models are still single-threaded. +// Let's load models in 4 threads; when one of them becomes idle, process the file, and fill thread with another file. Unfortunately processing models are still single-threaded. // Currently only supported on POSIX streamer. -#ifdef ONE_THREAD_PER_CHANNEL +// WIP - some files are loaded swapped (CdStreamPosix problem?) +#if 0 //def ONE_THREAD_PER_CHANNEL void CStreaming::LoadAllRequestedModels(bool priority) { @@ -2326,14 +2331,18 @@ CStreaming::LoadAllRequestedModels(bool priority) int streamIds[ARRAY_SIZE(ms_pStreamingBuffer)]; int streamSizes[ARRAY_SIZE(ms_pStreamingBuffer)]; int streamPoses[ARRAY_SIZE(ms_pStreamingBuffer)]; - bool first = true; + int readOrder[4] = {-1}; // Channel IDs ordered by read time + int readI = 0; int processI = 0; + bool first = true; + + // All those "first" checks are because of variables aren't initialized in first pass. while (true) { - // Enumerate files and start reading for (int i=0; i (uint32)ms_streamingBufferSize) { if (i + 1 == ARRAY_SIZE(ms_pStreamingBuffer)) - continue; + break; else if (!first && streamIds[i+1] != -1) continue; + } else { + // Buffer of current channel is part of a "big file", pass if (i != 0 && streamIds[i-1] != -1 && streamSizes[i-1] > (uint32)ms_streamingBufferSize) continue; } @@ -2361,8 +2374,18 @@ CStreaming::LoadAllRequestedModels(bool priority) streamIds[i] = streamId; streamSizes[i] = size; streamPoses[i] = posn; + + if (!first) + assert(readOrder[readI] == -1); + + //printf("read: order %d, ch %d, id %d, size %d\n", readI, i, streamId, size); + CdStreamRead(i, ms_pStreamingBuffer[i], imgOffset+posn, size); - processI = i; + readOrder[readI] = i; + if (first && readI+1 != ARRAY_SIZE(readOrder)) + readOrder[readI+1] = -1; + + readI = (readI + 1) % ARRAY_SIZE(readOrder); } else { ms_aInfoForModel[streamId].RemoveFromList(); DecrementRef(streamId); @@ -2370,33 +2393,40 @@ CStreaming::LoadAllRequestedModels(bool priority) ms_aInfoForModel[streamId].m_loadState = STREAMSTATE_LOADED; streamIds[i] = -1; } - } else + } else { streamIds[i] = -1; + break; + } } first = false; + int nextChannel = readOrder[processI]; - // Now process - if (streamIds[processI] == -1) + // Now start processing + if (nextChannel == -1 || streamIds[nextChannel] == -1) break; - // Try again on error - while (CdStreamSync(processI) != STREAM_NONE) { - CdStreamRead(processI, ms_pStreamingBuffer[processI], imgOffset+streamPoses[processI], streamSizes[processI]); - } - ms_aInfoForModel[streamIds[processI]].m_loadState = STREAMSTATE_READING; - - MakeSpaceFor(streamSizes[processI] * CDSTREAM_SECTOR_SIZE); - ConvertBufferToObject(ms_pStreamingBuffer[processI], streamIds[processI]); - if(ms_aInfoForModel[streamIds[processI]].m_loadState == STREAMSTATE_STARTED) - FinishLoadingLargeFile(ms_pStreamingBuffer[processI], streamIds[processI]); + //printf("process: order %d, ch %d, id %d\n", processI, nextChannel, streamIds[nextChannel]); - if(streamIds[processI] < STREAM_OFFSET_TXD){ - CSimpleModelInfo *mi = (CSimpleModelInfo*)CModelInfo::GetModelInfo(streamIds[processI]); + // Try again on error + while (CdStreamSync(nextChannel) != STREAM_NONE) { + CdStreamRead(nextChannel, ms_pStreamingBuffer[nextChannel], imgOffset+streamPoses[nextChannel], streamSizes[nextChannel]); + } + ms_aInfoForModel[streamIds[nextChannel]].m_loadState = STREAMSTATE_READING; + + MakeSpaceFor(streamSizes[nextChannel] * CDSTREAM_SECTOR_SIZE); + ConvertBufferToObject(ms_pStreamingBuffer[nextChannel], streamIds[nextChannel]); + if(ms_aInfoForModel[streamIds[nextChannel]].m_loadState == STREAMSTATE_STARTED) + FinishLoadingLargeFile(ms_pStreamingBuffer[nextChannel], streamIds[nextChannel]); + + if(streamIds[nextChannel] < STREAM_OFFSET_TXD){ + CSimpleModelInfo *mi = (CSimpleModelInfo*)CModelInfo::GetModelInfo(streamIds[nextChannel]); if(mi->IsSimple()) mi->m_alpha = 255; } - streamIds[processI] = -1; + streamIds[nextChannel] = -1; + readOrder[processI] = -1; + processI = (processI + 1) % ARRAY_SIZE(readOrder); } ms_bLoadingBigModel = false; @@ -2443,7 +2473,7 @@ CStreaming::LoadAllRequestedModels(bool priority) status = CdStreamRead(0, ms_pStreamingBuffer[0], imgOffset+posn, size); while(CdStreamSync(0) || status == STREAM_NONE); ms_aInfoForModel[streamId].m_loadState = STREAMSTATE_READING; - + MakeSpaceFor(size * CDSTREAM_SECTOR_SIZE); ConvertBufferToObject(ms_pStreamingBuffer[0], streamId); if(ms_aInfoForModel[streamId].m_loadState == STREAMSTATE_STARTED) @@ -2500,7 +2530,7 @@ CStreaming::FlushRequestList(void) next = si->m_next; RemoveModel(si - ms_aInfoForModel); } -#ifndef _WIN32 +#ifdef FLUSHABLE_STREAMING if(ms_channel[0].state == CHANNELSTATE_READING) { flushStream[0] = 1; } @@ -3216,4 +3246,4 @@ CStreaming::PrintStreamingBufferState() DoRWStuffEndOfFrame(); } CTimer::Update(); -} \ No newline at end of file +} diff --git a/src/core/Streaming.h b/src/core/Streaming.h index a67384f6..4ddf0b3b 100644 --- a/src/core/Streaming.h +++ b/src/core/Streaming.h @@ -88,7 +88,11 @@ public: static int32 ms_oldSectorX; static int32 ms_oldSectorY; static int32 ms_streamingBufferSize; +#ifndef ONE_THREAD_PER_CHANNEL static int8 *ms_pStreamingBuffer[2]; +#else + static int8 *ms_pStreamingBuffer[4]; +#endif static size_t ms_memoryUsed; static CStreamingChannel ms_channel[2]; static int32 ms_channelError; diff --git a/src/core/config.h b/src/core/config.h index 7e039ef6..329d70b9 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -393,11 +393,12 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #endif -#ifdef LIBRW -// these are not supported with librw yet +// Streaming +#if !defined(_WIN32) && !defined(__SWITCH__) + //#define ONE_THREAD_PER_CHANNEL // Don't use if you're not on SSD/Flash - also not utilized too much right now(see commented LoadAllRequestedModels in Streaming.cpp) + #define FLUSHABLE_STREAMING // Make it possible to interrupt reading when processing file isn't needed anymore. #endif -// IMG -#define BIG_IMG // allows to read larger img files +#define BIG_IMG // Not complete - allows to read larger img files //#define SQUEEZE_PERFORMANCE #ifdef SQUEEZE_PERFORMANCE @@ -405,6 +406,8 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #undef NO_ISLAND_LOADING #endif +// ------- + #if defined __MWERKS__ || defined VANILLA_DEFINES #define FINAL #undef CHATTYSPLASH diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index 431697dc..aab78c6d 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -1271,10 +1271,11 @@ void terminateHandler(int sig, siginfo_t *info, void *ucontext) { RsGlobal.quit = TRUE; } +#ifdef FLUSHABLE_STREAMING void dummyHandler(int sig){ // Don't kill the app pls } - +#endif #endif void resizeCB(GLFWwindow* window, int width, int height) { @@ -1528,11 +1529,13 @@ main(int argc, char *argv[]) act.sa_sigaction = terminateHandler; act.sa_flags = SA_SIGINFO; sigaction(SIGTERM, &act, NULL); +#ifdef FLUSHABLE_STREAMING struct sigaction sa; sigemptyset(&sa.sa_mask); sa.sa_handler = dummyHandler; sa.sa_flags = 0; - sigaction(SIGUSR1, &sa, NULL); // Needed for CdStreamPosix + sigaction(SIGUSR1, &sa, NULL); +#endif #endif /* From a216bb56ee5877ec21ac22fdf1f7ffcb2fccde87 Mon Sep 17 00:00:00 2001 From: erorcun Date: Wed, 27 Jan 2021 18:26:48 +0300 Subject: [PATCH 008/113] Attempt to fix input delays on GLFW --- src/skel/glfw/glfw.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index aab78c6d..97a77827 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -1448,7 +1448,7 @@ bool rshiftStatus = false; void keypressCB(GLFWwindow* window, int key, int scancode, int action, int mods) { - if (key >= 0 && key <= GLFW_KEY_LAST) { + if (key >= 0 && key <= GLFW_KEY_LAST && action != GLFW_REPEAT) { RsKeyCodes ks = (RsKeyCodes)keymap[key]; if (key == GLFW_KEY_LEFT_SHIFT) @@ -1459,7 +1459,6 @@ keypressCB(GLFWwindow* window, int key, int scancode, int action, int mods) if (action == GLFW_RELEASE) RsKeyboardEventHandler(rsKEYUP, &ks); else if (action == GLFW_PRESS) RsKeyboardEventHandler(rsKEYDOWN, &ks); - else if (action == GLFW_REPEAT) RsKeyboardEventHandler(rsKEYDOWN, &ks); } } From 9c2f06740312241bc2a71d71cb7f5459c0e16a8a Mon Sep 17 00:00:00 2001 From: erorcun Date: Wed, 27 Jan 2021 22:14:47 +0300 Subject: [PATCH 009/113] Change joystick DB with latest offical one --- gamefiles/gamecontrollerdb.txt | 1122 ++++++++++++++++++++++++++------ 1 file changed, 933 insertions(+), 189 deletions(-) diff --git a/gamefiles/gamecontrollerdb.txt b/gamefiles/gamecontrollerdb.txt index fcefb88a..728fddc2 100644 --- a/gamefiles/gamecontrollerdb.txt +++ b/gamefiles/gamecontrollerdb.txt @@ -1,199 +1,943 @@ -# Windows - DINPUT -8f0e1200000000000000504944564944,Acme,platform:Windows,x:b2,a:b0,b:b1,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, -341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, -ffff0000000000000000504944564944,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, -6d0416c2000000000000504944564944,Generic DirectInput Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, -0d0f6e00000000000000504944564944,HORIPAD 4,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Windows, -6d0419c2000000000000504944564944,Logitech F710 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, -88880803000000000000504944564944,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b9,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, -4c056802000000000000504944564944,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Windows, -25090500000000000000504944564944,PS3 DualShock,a:b2,b:b1,back:b9,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b0,y:b3,platform:Windows, -4c05c405000000000000504944564944,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, -6d0418c2000000000000504944564944,Logitech RumblePad 2 USB,platform:Windows,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, -36280100000000000000504944564944,OUYA Controller,platform:Windows,a:b0,b:b3,y:b2,x:b1,start:b14,guide:b15,leftstick:b6,rightstick:b7,leftshoulder:b4,rightshoulder:b5,dpup:b8,dpleft:b10,dpdown:b9,dpright:b11,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:b12,righttrigger:b13, -4f0400b3000000000000504944564944,Thrustmaster Firestorm Dual Power,a:b0,b:b2,y:b3,x:b1,start:b10,guide:b8,back:b9,leftstick:b11,rightstick:b12,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7,platform:Windows, -00f00300000000000000504944564944,RetroUSB.com RetroPad,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Windows, -00f0f100000000000000504944564944,RetroUSB.com Super RetroPort,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Windows, -28040140000000000000504944564944,GamePad Pro USB,platform:Windows,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,lefttrigger:b6,righttrigger:b7, -ff113133000000000000504944564944,SVEN X-PAD,platform:Windows,a:b2,b:b3,y:b1,x:b0,start:b5,back:b4,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b8,righttrigger:b9, -8f0e0300000000000000504944564944,Piranha xtreme,platform:Windows,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, -8f0e0d31000000000000504944564944,Multilaser JS071 USB,platform:Windows,a:b1,b:b2,y:b3,x:b0,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, -10080300000000000000504944564944,PS2 USB,platform:Windows,a:b2,b:b1,y:b0,x:b3,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a4,righty:a2,lefttrigger:b4,righttrigger:b5, -79000600000000000000504944564944,G-Shark GS-GP702,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b6,righttrigger:b7,platform:Windows, -4b12014d000000000000504944564944,NYKO AIRFLO,a:b0,b:b1,x:b2,y:b3,back:b8,guide:b10,start:b9,leftstick:a0,rightstick:a2,leftshoulder:a3,rightshoulder:b5,dpup:h0.1,dpdown:h0.0,dpleft:h0.8,dpright:h0.2,leftx:h0.6,lefty:h0.12,rightx:h0.9,righty:h0.4,lefttrigger:b6,righttrigger:b7,platform:Windows, -d6206dca000000000000504944564944,PowerA Pro Ex,a:b1,b:b2,x:b0,y:b3,back:b8,guide:b12,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.0,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Windows, -a3060cff000000000000504944564944,Saitek P2500,a:b2,b:b3,y:b1,x:b0,start:b4,guide:b10,back:b5,leftstick:b8,rightstick:b9,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,platform:Windows, -4f0415b3000000000000504944564944,Thrustmaster Dual Analog 3.2,platform:Windows,x:b1,a:b0,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, -6f0e1e01000000000000504944564944,Rock Candy Gamepad for PS3,platform:Windows,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,guide:b12,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, -83056020000000000000504944564944,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,y:b2,x:b3,start:b7,back:b6,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,platform:Windows, -10080100000000000000504944564944,PS1 USB,platform:Windows,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftshoulder:b6,rightshoulder:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2,lefttrigger:b4,righttrigger:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, -49190204000000000000504944564944,Ipega PG-9023,a:b0,b:b1,x:b3,y:b4,back:b10,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:b8,righttrigger:b9,platform:Windows, -4f0423b3000000000000504944564944,Dual Trigger 3-in-1,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:b6,righttrigger:b7,platform:Windows, -0d0f4900000000000000504944564944,Hatsune Miku Sho Controller,a:b1,b:b2,x:b0,y:b3,back:b8,guide:b12,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Windows, -79004318000000000000504944564944,Mayflash GameCube Controller Adapter,platform:Windows,a:b1,b:b2,x:b0,y:b3,back:b0,start:b9,guide:b0,leftshoulder:b4,rightshoulder:b7,leftstick:b0,rightstick:b0,leftx:a0,lefty:a1,rightx:a5,righty:a2,lefttrigger:a3,righttrigger:a4,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, -79000018000000000000504944564944,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Windows, -2509e803000000000000504944564944,Mayflash Wii Classic Controller,a:b1,b:b0,x:b3,y:b2,back:b8,guide:b10,start:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:b11,dpdown:b13,dpleft:b12,dpright:b14,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Windows, -300f1001000000000000504944564944,Saitek P480 Rumble Pad,a:b2,b:b3,x:b0,y:b1,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a2,lefttrigger:b5,righttrigger:b7,platform:Windows, -10280900000000000000504944564944,8Bitdo SFC30 GamePad,a:b1,b:b0,y:b3,x:b4,start:b11,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,platform:Windows, -63252305000000000000504944564944,USB Vibration Joystick (BM),platform:Windows,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, -20380900000000000000504944564944,8Bitdo NES30 PRO Wireless,platform:Windows,a:b0,b:b1,x:b3,y:b4,leftshoulder:b6,rightshoulder:b7,lefttrigger:b8,righttrigger:b9,back:b10,start:b11,leftstick:b13,rightstick:b14,leftx:a0,lefty:a1,rightx:a3,righty:a4,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8, -02200090000000000000504944564944,8Bitdo NES30 PRO USB,platform:Windows,a:b0,b:b1,x:b3,y:b4,leftshoulder:b6,rightshoulder:b7,lefttrigger:b8,righttrigger:b9,back:b10,start:b11,leftstick:b13,rightstick:b14,leftx:a0,lefty:a1,rightx:a3,righty:a4,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8, -ff113133000000000000504944564944,Gembird JPD-DualForce,platform:Windows,a:b2,b:b3,x:b0,y:b1,start:b9,back:b8,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b6,righttrigger:b7,leftstick:b10,rightstick:b11, -341a0108000000000000504944564944,EXEQ RF USB Gamepad 8206,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,leftstick:b8,rightstick:b7,back:b8,start:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,platform:Windows, -c0111352000000000000504944564944,Battalife Joystick,platform:Windows,x:b4,a:b6,b:b7,y:b5,back:b2,start:b3,leftshoulder:b0,rightshoulder:b1,leftx:a0,lefty:a1, -100801e5000000000000504944564944,NEXT Classic USB Game Controller,a:b0,b:b1,back:b8,start:b9,rightx:a2,righty:a3,leftx:a0,lefty:a1,platform:Windows, -4c05cc09000000000000504944564944,Sony DualShock 4,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b13,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:a3,righttrigger:a4,platform:Windows, -4c05a00b000000000000504944564944,Sony DualShock 4 Wireless Adaptor,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b13,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:a3,righttrigger:a4,platform:Windows, +# Game Controller DB for SDL in 2.0.9 format +# Source: https://github.com/gabomdq/SDL_GameControllerDB -# OS X -0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, -6d0400000000000016c2000000000000,Logitech F310 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, -6d0400000000000018c2000000000000,Logitech F510 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, -6d040000000000001fc2000000000000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, -6d0400000000000019c2000000000000,Logitech Wireless Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, -4c050000000000006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, -4c05000000000000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, -5e040000000000008e02000000000000,X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, -891600000000000000fd000000000000,Razer Onza Tournament,a:b0,b:b1,y:b3,x:b2,start:b8,guide:b10,back:b9,leftstick:b6,rightstick:b7,leftshoulder:b4,rightshoulder:b5,dpup:b11,dpleft:b13,dpdown:b12,dpright:b14,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Mac OS X, -4f0400000000000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,y:b3,x:b1,start:b10,guide:b8,back:b9,leftstick:b11,rightstick:,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7,platform:Mac OS X, -8f0e0000000000000300000000000000,Piranha xtreme,platform:Mac OS X,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, -0d0f0000000000004d00000000000000,HORI Gem Pad 3,platform:Mac OS X,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, -79000000000000000600000000000000,G-Shark GP-702,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:b6,righttrigger:b7,platform:Mac OS X, -4f0400000000000015b3000000000000,Thrustmaster Dual Analog 3.2,platform:Mac OS X,x:b1,a:b0,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, -AD1B00000000000001F9000000000000,Gamestop BB-070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, -050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,y:b9,x:b10,start:b6,guide:b8,back:b7,dpup:b2,dpleft:b0,dpdown:b3,dpright:b1,leftx:a0,lefty:a1,lefttrigger:b12,righttrigger:,leftshoulder:b11,platform:Mac OS X, -83050000000000006020000000000000,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,x:b3,y:b2,back:b6,start:b7,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,platform:Mac OS X, -5e04000000000000dd02000000000000,Xbox One Wired Controller,platform:Mac OS X,x:b2,a:b0,b:b1,y:b3,back:b9,guide:b10,start:b8,dpleft:b13,dpdown:b12,dpright:b14,dpup:b11,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b6,rightstick:b7,leftx:a0,lefty:a1,rightx:a3,righty:a4, -050000005769696d6f74652028313800,Wii U Pro Controller,a:b16,b:b15,x:b18,y:b17,back:b7,guide:b8,start:b6,leftstick:b23,rightstick:b24,leftshoulder:b19,rightshoulder:b20,dpup:b11,dpdown:b12,dpleft:b13,dpright:b14,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b21,righttrigger:b22,platform:Mac OS X, -79000000000000000018000000000000,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b4,b:b8,x:b0,y:b12,back:b32,start:b36,leftstick:b40,rightstick:b44,leftshoulder:b16,rightshoulder:b20,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a4,rightx:a8,righty:a12,lefttrigger:b24,righttrigger:b28,platform:Mac OS X, -2509000000000000e803000000000000,Mayflash Wii Classic Controller,a:b1,b:b0,x:b3,y:b2,back:b8,guide:b10,start:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:b11,dpdown:b13,dpleft:b12,dpright:b14,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Mac OS X, -351200000000000021ab000000000000,SFC30 Joystick,a:b1,b:b0,x:b4,y:b3,back:b10,start:b11,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Mac OS X, -b4040000000000000a01000000000000,Sega Saturn USB Gamepad,a:b0,b:b1,x:b3,y:b4,back:b5,guide:b2,start:b8,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Mac OS X, -10280000000000000900000000000000,8Bitdo SFC30 GamePad,a:b1,b:b0,x:b4,y:b3,back:b10,start:b11,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Mac OS X, -d814000000000000cecf000000000000,MC Cthulhu,platform:Mac OS X,leftx:,lefty:,rightx:,righty:,lefttrigger:b6,a:b1,b:b2,y:b3,x:b0,start:b9,back:b8,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,righttrigger:b7, -0d0f0000000000006600000000000000,HORIPAD FPS PLUS 4,platform:Mac OS X,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:b6,righttrigger:a4, -5e04000000000000e002000000000000,Xbox Wireless Controller,platform:Mac OS X,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b10,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a3,righty:a4, -79000000000000001100000000000000,Retrolink Classic Controller,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,leftx:a3,lefty:a4,platform:Mac OS X, -4c05000000000000cc09000000000000,Sony DualShock 4 V2,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b13,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:a3,righttrigger:a4,platform:Mac OS X, -5e04000000000000ea02000000000000,Xbox Wireless Controller,platform:Mac OS X,x:b2,a:b0,b:b1,y:b3,back:b9,guide:b10,start:b8,dpleft:b13,dpdown:b12,dpright:b14,dpup:b11,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b6,rightstick:b7,leftx:a0,lefty:a1,rightx:a3,righty:a4, -81170000000000007e05000000000000,Sega Saturn,x:b0,a:b2,b:b4,y:b6,start:b13,dpleft:b15,dpdown:b16,dpright:b14,dpup:b17,leftshoulder:b8,lefttrigger:a5,lefttrigger:b10,rightshoulder:b9,righttrigger:a4,righttrigger:b11,leftx:a0,lefty:a2,platform:Mac OS X, -bd1200000000000015d0000000000000,Tomee SNES USB Controller,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,platform:Mac OS X, -03000000632500002305000000010000,Redragon Saturn,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Mac OS X, +# Windows +03000000fa2d00000100000000000000,3DRUDDER,leftx:a0,lefty:a1,rightx:a5,righty:a2,platform:Windows, +03000000c82d00002038000000000000,8bitdo,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d000011ab000000000000,8BitDo F30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001038000000000000,8BitDo F30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000650000000000000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00005106000000000000,8BitDo M30 Gamepad,a:b1,b:b0,back:b10,guide:b2,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000310000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00002028000000000000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00008010000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000190000000000000,8BitDo N30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001590000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00006528000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00015900000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00065280000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000022000000090000000000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000203800000900000000000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000130000000000000,8BitDo SF30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000060000000000000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000061000000000000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d000021ab000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000102800000900000000000000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00003028000000000000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000030000000000000,8BitDo SN30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000351000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001290000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d000020ab000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00004028000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00006228000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000260000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000261000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000031000000000000,8BitDo Wireless Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001890000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00003032000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000a00500003232000000000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +030000008f0e00001200000000000000,Acme GA-02,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000fa190000f0ff000000000000,Acteck AGJ-3200,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006f0e00001413000000000000,Afterglow,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000341a00003608000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000263000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001101000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001401000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001402000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001901000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001a01000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d62000001d57000000000000,Airflo PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000869800002400000000007801,Astro C40 TR,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d6200000e557000000000000,Batarang,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000c01100001352000000000000,Battalife Joystick,a:b6,b:b7,back:b2,leftshoulder:b0,leftx:a0,lefty:a1,rightshoulder:b1,start:b3,x:b4,y:b5,platform:Windows, +030000006f0e00003201000000000000,Battlefield 4 PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d62000002a79000000000000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000bc2000006012000000000000,Betop 2126F,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000000055000000000000,Betop BFM Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000bc2000006312000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000006321000000000000,BETOP CONTROLLER,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000006412000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000555000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000655000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000790000000700000000000000,Betop Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000808300000300000000000000,Betop Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +030000006b1400000055000000000000,Bigben PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006b1400000103000000000000,Bigben PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +0300000066f700000500000000000000,BrutalLegendTest,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000d81d00000b00000000000000,BUFFALO BSGP1601 Series ,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Windows, +03000000e82000006058000000000000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000457500000401000000000000,Cobra,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000005e0400008e02000000000000,Controller (XBOX 360 For Windows),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000a102000000000000,Controller (Xbox 360 Wireless Receiver for Windows),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000ff02000000000000,Controller (Xbox One For Windows) - Wired,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000ea02000000000000,Controller (Xbox One For Windows) - Wireless,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000260900008888000000000000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a4,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Windows, +03000000a306000022f6000000000000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000451300000830000000000000,Defender Game Racer X7,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000007d0400000840000000000000,Destroyer Tiltpad,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,x:b0,y:b3,platform:Windows, +03000000791d00000103000000000000,Dual Box WII,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bd12000002e0000000000000,Dual USB Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows, +030000008f0e00000910000000000000,DualShock 2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows, +030000006f0e00003001000000000000,EA SPORTS PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000b80500000410000000000000,Elecom Gamepad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +03000000b80500000610000000000000,Elecom Gamepad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +03000000120c0000f61c000000000000,Elite,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00000f31000000000000,EXEQ,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +03000000341a00000108000000000000,EXEQ RF USB Gamepad 8206,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006f0e00008401000000000000,Faceoff Deluxe+ Audio Wired Controller for Nintendo Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00008001000000000000,Faceoff Wired Pro Controller for Nintendo Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000852100000201000000000000,FF-GP1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008500000000000000,Fighting Commander 2016 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008400000000000000,Fighting Commander 5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008700000000000000,Fighting Stick mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008800000000000000,Fighting Stick mini 4,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows, +030000000d0f00002700000000000000,FIGHTING STICK V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +78696e70757403000000000000000000,Fightstick TES,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000790000002201000000000000,Game Controller for PC,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +0300000066f700000100000000000000,Game VIB Joystick,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows, +03000000260900002625000000000000,Gamecube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,lefttrigger:a4,leftx:a0,lefty:a1,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Windows, +03000000790000004618000000000000,GameCube Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00000d31000000000000,GAMEPAD 3 TURBO,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000280400000140000000000000,GamePad Pro USB,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000ac0500003d03000000000000,GameSir,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500004d04000000000000,GameSir,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ffff00000000000000000000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000c01100000140000000000000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000102000000007801,GameStop Xbox 360 Wired Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000009b2800003200000000000000,GC/N64 to USB v3.4,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows, +030000009b2800006000000000000000,GC/N64 to USB v3.6,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows, +030000008305000009a0000000000000,Genius,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000008305000031b0000000000000,Genius Maxfire Blaze 3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000451300000010000000000000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000005c1a00003330000000000000,Genius MaxFire Grandias 12V,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000300f00000b01000000000000,GGE909 Recoil Pad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c283000000000000,Gioteck,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f025000021c1000000000000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c383000000000000,Gioteck VX2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c483000000000000,Gioteck VX2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000007d0400000540000000000000,Gravis Eliminator GamePad Pro,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000341a00000302000000000000,Hama Scorpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00004900000000000000,Hatsune Miku Sho Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000001008000001e1000000000000,Havit HV-G60,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows, +03000000d81400000862000000000000,HitBox Edition Cthulhu+,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +03000000632500002605000000000000,HJD-X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000000d0f00002d00000000000000,Hori Fighting Commander 3 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005f00000000000000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005e00000000000000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00004000000000000000,Hori Fighting Stick Mini 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005400000000000000,Hori Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00000900000000000000,Hori Pad 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00004d00000000000000,Hori Pad A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00009200000000000000,Hori Pokken Tournament DX Pro Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00001600000000007803,HORI Real Arcade Pro EX-SE (Xbox 360),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00009c00000000000000,Hori TAC Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000c100000000000000,Horipad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006e00000000000000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006600000000000000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005500000000000000,Horipad 4 FPS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000ee00000000000000,HORIPAD mini4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000250900000017000000000000,HRAP2 on PS/SS/N64 Joypad to USB BOX,a:b2,b:b1,back:b9,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b8,x:b3,y:b0,platform:Windows, +030000008f0e00001330000000000000,HuiJia SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b9,x:b3,y:b0,platform:Windows, +03000000d81d00000f00000000000000,iBUFFALO BSGP1204 Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d81d00001000000000000000,iBUFFALO BSGP1204P Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000830500006020000000000000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Windows, +03000000b50700001403000000000000,Impact Black,a:b2,b:b3,back:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +030000006f0e00002401000000000000,INJUSTICE FightStick PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000ac0500002c02000000000000,IPEGA,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000491900000204000000000000,Ipega PG-9023,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000491900000304000000000000,Ipega PG-9087 - Bluetooth Gamepad,+righty:+a5,-righty:-a4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,start:b11,x:b3,y:b4,platform:Windows, +030000006e0500000a20000000000000,JC-DUX60 ELECOM MMO Gamepad,a:b2,b:b3,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b14,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b15,righttrigger:b13,rightx:a3,righty:a4,start:b20,x:b0,y:b1,platform:Windows, +030000006e0500000520000000000000,JC-P301U,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000320000000000000,JC-U3613M (DInput),a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000720000000000000,JC-W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +030000007e0500000620000000000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Windows, +030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Windows, +030000007e0500000720000000000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000bd12000003c0000000000000,JY-P70UR,a:b1,b:b0,back:b5,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b11,righttrigger:b9,rightx:a3,righty:a2,start:b4,x:b3,y:b2,platform:Windows, +03000000242f00002d00000000000000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000242f00008a00000000000000,JYS Wireless Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, +03000000790000000200000000000000,King PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +030000006d040000d1ca000000000000,Logitech ChillStream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d040000d2ca000000000000,Logitech Cordless Precision,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000011c2000000000000,Logitech Cordless Wingman,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b5,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b2,righttrigger:b7,rightx:a3,righty:a4,x:b4,platform:Windows, +030000006d04000016c2000000000000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000018c2000000000000,Logitech F510 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000019c2000000000000,Logitech F710 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d0400001ac2000000000000,Logitech Precision Gamepad,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000006d0400000ac2000000000000,Logitech WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Windows, +03000000380700006652000000000000,Mad Catz C.T.R.L.R,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000380700005032000000000000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700005082000000000000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008433000000000000,Mad Catz FightStick TE S+ (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008483000000000000,Mad Catz FightStick TE S+ (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008134000000000000,Mad Catz FightStick TE2+ PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008184000000000000,Mad Catz FightStick TE2+ PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,leftstick:b10,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000380700006252000000000000,Mad Catz Micro C.T.R.L.R,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008034000000000000,Mad Catz TE2 PS3 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008084000000000000,Mad Catz TE2 PS4 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008532000000000000,Madcatz Arcade Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700003888000000000000,Madcatz Arcade Fightstick TE S+ PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700001888000000000000,MadCatz SFIV FightStick PS3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000380700008081000000000000,MADCATZ SFV Arcade FightStick Alpha PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000002a0600001024000000000000,Matricom,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows, +03000000250900000128000000000000,Mayflash Arcade Stick,a:b1,b:b2,back:b8,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b5,y:b6,platform:Windows, +03000000790000004418000000000000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000790000004318000000000000,Mayflash GameCube Controller Adapter,a:b1,b:b2,back:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b0,leftshoulder:b4,leftstick:b0,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b0,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000242f00007300000000000000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, +0300000079000000d218000000000000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d620000010a7000000000000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00001030000000000000,Mayflash USB Adapter for original Sega Saturn controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,rightshoulder:b2,righttrigger:b7,start:b9,x:b3,y:b4,platform:Windows, +0300000025090000e803000000000000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +03000000790000000018000000000000,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000790000002418000000000000,Mega Drive,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000380700006382000000000000,MLG GamePad PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000c62400002a89000000000000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400002b89000000000000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400001a89000000000000,MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400001b89000000000000,MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000efbe0000edfe000000000000,Monect Virtual Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000250900006688000000000000,MP-8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +030000006b140000010c000000000000,NACON GC-400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000001008000001e5000000000000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Windows, +03000000152000000182000000000000,NGDS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000bd12000015d0000000000000,Nintendo Retrolink USB Super SNES Classic Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows, +030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000000d0500000308000000000000,Nostromo N45,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Windows, +03000000550900001472000000000000,NVIDIA Controller v01.04,a:b11,b:b10,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b5,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b4,righttrigger:a5,rightx:a3,righty:a6,start:b3,x:b9,y:b8,platform:Windows, +030000004b120000014d000000000000,NYKO AIRFLO,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a3,leftstick:a0,lefttrigger:b6,rightshoulder:b5,rightstick:a2,righttrigger:b7,start:b9,x:b2,y:b3,platform:Windows, +03000000782300000a10000000000000,Onlive Wireless Controller,a:b15,b:b14,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b11,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b13,y:b12,platform:Windows, +03000000d62000006d57000000000000,OPP PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006b14000001a1000000000000,Orange Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000362800000100000000000000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b13,rightx:a3,righty:a4,x:b1,y:b2,platform:Windows, +03000000120c0000f60e000000000000,P4 Wired Gamepad,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b7,rightshoulder:b4,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000901000000000000,PDP Versus Fighting Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00000300000000000000,Piranha xtreme,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000004c050000da0c000000000000,PlayStation Classic Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000d62000006dca000000000000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d62000009557000000000000,Pro Elite PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d62000009f31000000000000,Pro Ex mini PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d6200000c757000000000000,Pro Ex mini PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000632500002306000000000000,PS Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000e30500009605000000000000,PS to USB convert cable,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000100800000100000000000000,PS1 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000008f0e00007530000000000000,PS1 Controller,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b1,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000100800000300000000000000,PS2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000250900008888000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000666600006706000000000000,PS2 Controller,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Windows, +030000006b1400000303000000000000,PS2 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000009d0d00001330000000000000,PS2 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000250900000500000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b0,y:b3,platform:Windows, +030000004c0500006802000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b10,lefttrigger:a3~,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:a4~,rightx:a2,righty:a5,start:b8,x:b3,y:b0,platform:Windows, +03000000632500007505000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000888800000803000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b9,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, +030000008f0e00001431000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000003807000056a8000000000000,PS3 RF pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000100000008200000000000000,PS360+ v1.66,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:h0.4,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000004c050000a00b000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004c050000cc09000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004c050000e60c000000000000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00000011000000000000,QanBa Arcade JoyStick 1008,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b10,x:b0,y:b3,platform:Windows, +03000000300f00001611000000000000,QanBa Arcade JoyStick 4018,a:b1,b:b2,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows, +03000000222c00000020000000000000,QANBA DRONE ARCADE JOYSTICK,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001210000000000000,QanBa Joystick Plus,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000341a00000104000000000000,QanBa Joystick Q4RAF,a:b5,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b1,y:b2,platform:Windows, +03000000222c00000223000000000000,Qanba Obsidian Arcade Joystick PS3 Mode,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000222c00000023000000000000,Qanba Obsidian Arcade Joystick PS4 Mode,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000003000000000000,Razer Hydra,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000321500000204000000000000,Razer Panthera (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000104000000000000,Razer Panthera (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000507000000000000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000321500000707000000000000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000321500000011000000000000,Razer Raion Fightpad for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000009000000000000,Razer Serval,+lefty:+a2,-lefty:-a1,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,leftx:a0,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00001100000000000000,REAL ARCADE PRO.3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006a00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006b00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008a00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008b00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00007000000000000000,REAL ARCADE PRO.4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002200000000000000,REAL ARCADE Pro.V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005b00000000000000,Real Arcade Pro.V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005c00000000000000,Real Arcade Pro.V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000790000001100000000000000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000bd12000013d0000000000000,Retrolink USB SEGA Saturn Classic,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,lefttrigger:b6,rightshoulder:b2,righttrigger:b7,start:b8,x:b3,y:b4,platform:Windows, +0300000000f000000300000000000000,RetroUSB.com RetroPad,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows, +0300000000f00000f100000000000000,RetroUSB.com Super RetroPort,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows, +030000006b140000010d000000000000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006b140000020d000000000000,Revolution Pro Controller 2(1/2),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006b140000130d000000000000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001e01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00002801000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00002f01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000003d0000000000000,run'n'drive,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:a3,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:a4,rightstick:b11,righttrigger:b5,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000a30600001af5000000000000,Saitek Cyborg,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000a306000023f6000000000000,Saitek Cyborg V.1 Game pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001201000000000000,Saitek Dual Analog Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000a30600000701000000000000,Saitek P220,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,x:b0,y:b1,platform:Windows, +03000000a30600000cff000000000000,Saitek P2500 Force Rumble Pad,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b0,y:b1,platform:Windows, +03000000a30600000c04000000000000,Saitek P2900,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001001000000000000,Saitek P480 Rumble Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000a30600000b04000000000000,Saitek P990,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000a30600000b04000000010000,Saitek P990 Dual Analog Pad,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Windows, +03000000a30600002106000000000000,Saitek PS1000,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000a306000020f6000000000000,Saitek PS2700,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001101000000000000,Saitek Rumble Pad,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000730700000401000000000000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Windows, +0300000000050000289b000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows, +030000009b2800000500000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows, +030000005e0400008e02000000007801,ShanWan PS3/PC Wired GamePad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000341a00000208000000000000,SL-6555-SBK,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a3,righty:a2,start:b7,x:b2,y:b3,platform:Windows, +03000000341a00000908000000000000,SL-6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000008f0e00000800000000000000,SpeedLink Strike FX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000591000000000000,Speedlink Torid,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d11800000094000000000000,Stadia Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b11,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows, +03000000110100001914000000000000,SteelSeries,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000381000001214000000000000,SteelSeries Free,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000110100003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000381000001814000000000000,SteelSeries Stratus XL,a:b0,b:b1,back:b18,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b19,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b2,y:b3,platform:Windows, +03000000790000001c18000000000000,STK-7024X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ff1100003133000000000000,SVEN X-PAD,a:b2,b:b3,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a4,start:b5,x:b0,y:b1,platform:Windows, +03000000d620000011a7000000000000,Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000457500002211000000000000,SZMY-POWER PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000007d0000000000000,T Mini Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000004f0400000ab1000000000000,T.16000M,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b10,x:b2,y:b3,platform:Windows, +03000000fa1900000706000000000000,Team 5,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000b50700001203000000000000,Techmobility X6-38V,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +030000004f04000015b3000000000000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000004f04000023b3000000000000,Thrustmaster Dual Trigger 3-in-1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f0400000ed0000000000000,ThrustMaster eSwap PRO Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Windows, +030000004f04000004b3000000000000,Thrustmaster Firestorm Dual Power 3,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +03000000666600000488000000000000,TigerGame PS/PS2 Game Controller Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000d62000006000000000000000,Tournament PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000005f140000c501000000000000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000b80500000210000000000000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000004f04000087b6000000000000,TWCS Throttle,dpdown:b8,dpleft:b9,dpright:b7,dpup:b6,leftstick:b5,lefttrigger:-a5,leftx:a0,lefty:a1,righttrigger:+a5,platform:Windows, +03000000d90400000200000000000000,TwinShock PS2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000006e0500001320000000000000,U4113,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000101c0000171c000000000000,uRage Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000300f00000701000000000000,USB 4-Axis 12-Button Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000341a00002308000000000000,USB gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000005509000000b4000000000000,USB gamepad,a:b10,b:b11,back:b5,dpdown:b1,dpleft:b2,dpright:b3,dpup:b0,guide:b14,leftshoulder:b8,leftstick:b6,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b7,righttrigger:a5,rightx:a2,righty:a3,start:b4,x:b12,y:b13,platform:Windows, +030000006b1400000203000000000000,USB gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000790000000a00000000000000,USB gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c183000000000000,USB gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ff1100004133000000000000,USB gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000632500002305000000000000,USB Vibration Joystick (BM),a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000790000001a18000000000000,Venom,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000790000001b18000000000000,Venom Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000302000000000000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000702000000000000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +0300000034120000adbe000000000000,vJoy Device,a:b0,b:b1,back:b15,dpdown:b6,dpleft:b7,dpright:b8,dpup:b5,guide:b16,leftshoulder:b9,leftstick:b13,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b14,righttrigger:b12,rightx:+a3,righty:+a4,start:b4,x:b2,y:b3,platform:Windows, +030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000ff02000000007801,Xbox One Elite Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000130b000000000000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000341a00000608000000000000,Xeox,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000450c00002043000000000000,XEOX Gamepad SL-6556-BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000ac0500005b05000000000000,Xiaoji Gamesir-G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000172700004431000000000000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a7,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000786901006e70000000000000,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000790000004f18000000000000,ZD-T Android,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000120c0000101e000000000000,ZEROPLUS P4 Wired Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, + +# Mac OS X +030000008f0e00000300000009010000,2In1 USB Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000c82d00000090000001000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001038000000010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000650000001000000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00005106000000010000,8BitDo M30 Gamepad,a:b1,b:b0,back:b10,guide:b2,leftshoulder:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001590000001000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +030000003512000012ab000001000000,8BitDo NES30 Gamepad,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000022000000090000001000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000203800000900000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000190000001000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000102800000900000000000000,8Bitdo SFC30 GamePad Joystick,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001290000001000000,8BitDo SN30 Gamepad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000160000001000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000260000001000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000261000000010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000031000001000000,8BitDo Wireless Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001890000001000000,8BitDo Zero 2,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a31,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000a00500003232000008010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000a00500003232000009010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000c62400001a89000000010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X, +03000000c62400001b89000000010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000d62000002a79000000010000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008305000031b0000000000000,Cideko AK08b,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000260900008888000088020000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000a306000022f6000001030000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000ad1b000001f9000000000000,Gamestop BB-070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000c01100000140000000010000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006f0e00000102000000000000,GameStop Xbox 360 Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000007d0400000540000001010000,Gravis Eliminator GamePad Pro,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00002d00000000100000,Hori Fighting Commander 3 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005f00000000010000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005e00000000010000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005f00000000000000,HORI Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005e00000000000000,HORI Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00004d00000000000000,HORI Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00009200000000010000,Hori Pokken Tournament DX Pro Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006e00000000010000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006600000000010000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006600000000000000,HORIPAD FPS PLUS 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f0000ee00000000010000,HORIPAD mini4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008f0e00001330000011010000,HuiJia SNES Controller,a:b4,b:b2,back:b16,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b12,rightshoulder:b14,start:b18,x:b6,y:b0,platform:Mac OS X, +03000000830500006020000000010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X, +03000000830500006020000000000000,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X, +030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Mac OS X, +030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000242f00002d00000007010000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000006d04000016c2000000020000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000000030000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000014040000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000000000000,Logitech F310 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000018c2000000000000,Logitech F510 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000019c2000005030000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d0400001fc2000000000000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000006d04000018c2000000010000,Logitech RumblePad 2 USB,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3~,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000019c2000000000000,Logitech Wireless Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700005032000000010000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700005082000000010000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700008433000000010000,Mad Catz FightStick TE S+ (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700008483000000010000,Mad Catz FightStick TE S+ (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000790000004418000000010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000242f00007300000000020000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Mac OS X, +0300000079000000d218000026010000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000d620000010a7000003010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +0300000025090000e803000000000000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Mac OS X, +03000000790000000018000000000000,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X, +03000000d8140000cecf000000000000,MC Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000005e0400002700000001010000,Microsoft SideWinder Plug & Play Game Pad,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,leftx:a0,lefty:a1,righttrigger:b5,x:b2,y:b3,platform:Mac OS X, +03000000d62000007162000001000000,Moga Pro 2 HID,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X, +03000000c62400002a89000000010000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c62400002b89000000010000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000632500007505000000020000,NEOGEO mini PAD Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b2,y:b3,platform:Mac OS X, +030000001008000001e5000006010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000d620000011a7000000020000,Nintendo Switch Core (Plus) Wired Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +030000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000550900001472000025050000,NVIDIA Controller v01.04,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Mac OS X, +030000006f0e00000901000002010000,PDP Versus Fighting Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008f0e00000300000000000000,Piranha xtreme,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Mac OS X, +030000004c050000da0c000000010000,Playstation Classic Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000d62000006dca000000010000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +030000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +030000004c050000a00b000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008916000000fd000000000000,Razer Onza TE,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000321500000204000000010000,Razer Panthera (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000321500000104000000010000,Razer Panthera (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000321500000010000000010000,Razer RAIJU,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000321500000507000001010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000321500000011000000010000,Razer Raion Fightpad for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000321500000009000000020000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +030000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +0300000032150000030a000000000000,Razer Wildcat,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000790000001100000000000000,Retrolink Classic Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a3,lefty:a4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000790000001100000006010000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +030000006b140000010d000000010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006b140000130d000000010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000c6240000fefa000000000000,Rock Candy Gamepad for PS3,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000730700000401000000010000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Mac OS X, +03000000811700007e05000000000000,Sega Saturn,a:b2,b:b4,dpdown:b16,dpleft:b15,dpright:b14,dpup:b17,leftshoulder:b8,lefttrigger:a5,leftx:a0,lefty:a2,rightshoulder:b9,righttrigger:a4,start:b13,x:b0,y:b6,platform:Mac OS X, +03000000b40400000a01000000000000,Sega Saturn USB Gamepad,a:b0,b:b1,back:b5,guide:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Mac OS X, +030000003512000021ab000000000000,SFC30 Joystick,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +0300000000f00000f100000000000000,SNES RetroPort,a:b2,b:b3,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,rightshoulder:b7,start:b6,x:b0,y:b1,platform:Mac OS X, +030000004c050000e60c000000010000,Sony DualSense,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004c050000cc09000000000000,Sony DualShock 4 V2,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004c050000a00b000000000000,Sony DualShock 4 Wireless Adaptor,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000d11800000094000000010000,Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +030000005e0400008e02000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000110100002014000000000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b12,x:b2,y:b3,platform:Mac OS X, +03000000110100002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X, +03000000381000002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X, +03000000110100001714000000000000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X, +03000000110100001714000020010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X, +03000000457500002211000000010000,SZMY-POWER PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004f04000015b3000000000000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Mac OS X, +030000004f0400000ed0000000020000,ThrustMaster eSwap PRO Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Mac OS X, +03000000bd12000015d0000000000000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000bd12000015d0000000010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000100800000100000000000000,Twin USB Joystick,a:b4,b:b2,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b12,leftstick:b20,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b14,rightstick:b22,righttrigger:b10,rightx:a6,righty:a4,start:b18,x:b6,y:b0,platform:Mac OS X, +030000006f0e00000302000025040000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006f0e00000702000003060000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000791d00000103000009010000,Wii Classic Controller,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,back:b7,dpdown:b3,dpleft:b0,dpright:b1,dpup:b2,guide:b8,leftshoulder:b11,lefttrigger:b12,leftx:a0,lefty:a1,start:b6,x:b10,y:b9,platform:Mac OS X, +050000005769696d6f74652028313800,Wii U Pro Controller,a:b16,b:b15,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b8,leftshoulder:b19,leftstick:b23,lefttrigger:b21,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b24,righttrigger:b22,rightx:a2,righty:a3,start:b6,x:b18,y:b17,platform:Mac OS X, +030000005e0400008e02000000000000,X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000c6240000045d000000000000,Xbox 360 Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000050b000003090000,Xbox Elite Wireless Controller Series 2,a:b0,b:b1,back:b31,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b53,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000d102000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000dd02000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000e302000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000e002000000000000,Xbox Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X, +030000005e040000e002000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X, +030000005e040000ea02000000000000,Xbox Wireless Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000fd02000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000120c0000100e000000010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000120c0000101e000000010000,ZEROPLUS P4 Wired Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, # Linux -050000004c0500006802000000000000,Sony PLAYSTATION(R)3 Controller,platform:Linux,a:b14,b:b13,x:b15,y:b12,back:b0,guide:b16,start:b3,leftstick:b1,rightstick:b2,leftshoulder:b10,rightshoulder:b11,dpup:b4,dpdown:b6,dpleft:b7,dpright:b5,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a12,righttrigger:a13, -03000000ff1100004133000010010000,GreenAsia Inc.USB Joystick,platform:Linux,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, -0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, -03000000ba2200002010000001010000,Jess Technology USB Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, -030000006d04000019c2000010010000,Logitech Cordless RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00001038000000010000,8Bitdo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00005106000000010000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001590000011010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000310000011010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b9,righttrigger:b8,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00008010000000010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b9,righttrigger:b8,start:b11,x:b3,y:b4,platform:Linux, +03000000022000000090000011010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000203800000900000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00002038000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000190000011010000,8Bitdo NES30 Pro 8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000060000000010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000061000000010000,8Bitdo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d000021ab000010010000,8BitDo SFC30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +030000003512000012ab000010010000,8Bitdo SFC30 GamePad,a:b2,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Linux, +05000000102800000900000000010000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00003028000000010000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000160000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001290000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00006228000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000260000011010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000261000000010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000202800000900000000010000,8BitDo SNES30 Gamepad,a:b1,b:b0,back:b10,dpdown:b122,dpleft:b119,dpright:b120,dpup:b117,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +030000005e0400008e02000020010000,8BitDo Wireless Adapter (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000031000011010000,8BitDo Wireless Adapter (DInput),a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001890000011010000,8BitDo Zero 2,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000a00500003232000001000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux, +05000000a00500003232000008010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux, +030000006f0e00001302000000010000,Afterglow,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003901000020060000,Afterglow Controller for Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003901000000430000,Afterglow Prismatic Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003901000013020000,Afterglow Prismatic Wired Controller 048-007-NA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000100000008200000011010000,Akishop Customs PS360+ v1.66,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000007c1800000006000010010000,Alienware Dual Compatible Game Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +05000000491900000204000021000000,Amazon Fire Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b17,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b12,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000790000003018000011010000,Arcade Fightstick F300,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +05000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux, +05000000050b00000045000040000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux, +03000000120c00000500000010010000,AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux, +03000000c62400001b89000011010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000d62000002a79000011010000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000c21100000791000011010000,Be1 GC101 Controller 1.03 mode,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000c31100000791000011010000,Be1 GC101 GAMEPAD 1.03 mode,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e0400008e02000003030000,Be1 GC101 Xbox 360 Controller mode,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000666600006706000000010000,boom PSX to PC Converter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Linux, +03000000ffff0000ffff000000010000,Chinese-made Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +03000000e82000006058000001010000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000000b0400003365000000010000,Competition Pro,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Linux, +03000000260900008888000000010000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Linux, +03000000a306000022f6000011010000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000b40400000a01000000010000,CYPRESS USB Gamepad,a:b0,b:b1,back:b5,guide:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Linux, +03000000790000000600000010010000,DragonRise Inc. Generic USB Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Linux, +030000004f04000004b3000010010000,Dual Power 2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000006f0e00003001000001010000,EA Sports PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000341a000005f7000010010000,GameCube {HuiJia USB box},a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +03000000bc2000000055000011010000,GameSir G3w,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000006f0e00000104000000010000,Gamestop Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000008f0e00000800000010010000,Gasia Co. Ltd PS(R) Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e00001304000000010000,Generic X-Box pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000f0250000c183000010010000,Goodbetterbest Ltd USB Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +0300000079000000d418000000010000,GPD Win 2 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000007d0400000540000000010000,Gravis Eliminator GamePad Pro,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000280400000140000000010000,Gravis GamePad Pro USB ,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000008f0e00000610000000010000,GreenAsia Electronics 4Axes 12Keys GamePad ,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Linux, +030000008f0e00001200000010010000,GreenAsia Inc. USB Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +0500000047532067616d657061640000,GS gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000f0250000c383000010010000,GT VX2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +06000000adde0000efbe000002010000,Hidromancer Game Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d81400000862000011010000,HitBox (PS3/PC) Analog Mode,a:b1,b:b2,back:b8,guide:b9,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux, +03000000c9110000f055000011010000,HJC Game GAMEPAD,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000632500002605000010010000,HJD-X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000000d0f00000d00000000010000,hori,a:b0,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,leftx:b4,lefty:b5,rightshoulder:b7,start:b9,x:b1,y:b2,platform:Linux, +030000000d0f00001000000011010000,HORI CO. LTD. FIGHTING STICK 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f0000c100000011010000,HORI CO. LTD. HORIPAD S,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006a00000011010000,HORI CO. LTD. Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006b00000011010000,HORI CO. LTD. Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00002200000011010000,HORI CO. LTD. REAL ARCADE Pro.V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00008500000010010000,HORI Fighting Commander,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00008600000002010000,Hori Fighting Commander,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00005f00000011010000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00005e00000011010000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00009200000011010000,Hori Pokken Tournament DX Pro Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f0000aa00000011010000,HORI Real Arcade Pro,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000000d0f0000d800000072056800,HORI Real Arcade Pro S,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +030000000d0f00001600000000010000,Hori Real Arcade Pro.EX-SE (Xbox 360),a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00006e00000011010000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006600000011010000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f0000ee00000011010000,HORIPAD mini4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006700000001010000,HORIPAD ONE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000008f0e00001330000010010000,HuiJia SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b9,x:b3,y:b0,platform:Linux, +03000000242e00008816000001010000,Hyperkin X91,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000830500006020000010010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux, +050000006964726f69643a636f6e0000,idroid:con,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000b50700001503000010010000,impact,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000d80400008200000003000000,IMS PCU#0 Gamepad Interface,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b5,x:b3,y:b2,platform:Linux, +03000000fd0500000030000000010000,InterAct GoPad I-73000 (Fighting Game Layout),a:b3,b:b4,back:b6,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b7,x:b0,y:b1,platform:Linux, +0500000049190000020400001b010000,Ipega PG-9069 - Bluetooth Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b161,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000632500007505000011010000,Ipega PG-9099 - Bluetooth Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006e0500000320000010010000,JC-U3613M - DirectInput Mode,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux, +03000000300f00001001000010010000,Jess Tech Dual Analog Rumble Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000300f00000b01000010010000,Jess Tech GGE909 PC Recoil Pad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000ba2200002010000001010000,Jess Technology USB Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux, +050000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux, +030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux, +03000000242f00002d00000011010000,JYS Wireless Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000242f00008a00000011010000,JYS Wireless Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux, +030000006f0e00000103000000020000,Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d040000d1ca000000000000,Logitech ChillStream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000019c2000010010000,Logitech Cordless RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000016c2000010010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000016c2000011010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, 030000006d0400001dc2000014400000,Logitech F310 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d0400001ec2000019200000,Logitech F510 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 030000006d0400001ec2000020200000,Logitech F510 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 030000006d04000019c2000011010000,Logitech F710 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, 030000006d0400001fc2000005030000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d0400000ac2000010010000,Logitech Inc. WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Linux, +030000006d04000018c2000010010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000011c2000010010000,Logitech WingMan Cordless RumblePad,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b10,rightx:a3,righty:a4,start:b8,x:b3,y:b4,platform:Linux, +050000004d4f435554452d3035305800,M54-PC,a:b0,b:b1,x:b3,y:b4,back:b10,start:b11,leftshoulder:b6,rightshoulder:b7,leftstick:b13,rightstick:b14,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,platform:Linux, +05000000380700006652000025010000,Mad Catz C.T.R.L.R ,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700005032000011010000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700005082000011010000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000ad1b00002ef0000090040000,Mad Catz Fightpad SFxT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000380700008034000011010000,Mad Catz fightstick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008084000011010000,Mad Catz fightstick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008433000011010000,Mad Catz FightStick TE S+ (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008483000011010000,Mad Catz FightStick TE S+ (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000380700001647000010040000,Mad Catz Wired Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000380700003847000090040000,Mad Catz Wired Xbox 360 Controller (SFIV),a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000ad1b000016f0000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000380700001888000010010000,MadCatz PC USB Wired Stick 8818,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700003888000010010000,MadCatz PC USB Wired Stick 8838,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:a0,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000120c00000500000000010000,Manta Dualshock 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000790000004418000010010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +03000000790000004318000010010000,Mayflash GameCube Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +03000000242f00007300000011010000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux, +0300000079000000d218000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d620000010a7000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +0300000025090000e803000001010000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +03000000780000000600000010010000,Microntek USB Joystick,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +030000005e0400000e00000000010000,Microsoft SideWinder,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Linux, +030000005e0400008e02000004010000,Microsoft X-Box 360 pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000062230000,Microsoft X-Box 360 pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000050b000003090000,Microsoft X-Box One Elite 2 pad,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e040000e302000003020000,Microsoft X-Box One Elite pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000d102000001010000,Microsoft X-Box One pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000dd02000003020000,Microsoft X-Box One pad (Firmware 2015),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000d102000003020000,Microsoft X-Box One pad v2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008502000000010000,Microsoft X-Box pad (Japan),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e0400008902000021010000,Microsoft X-Box pad v2 (US),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e040000000b000008040000,Microsoft Xbox One Elite 2 pad - Wired,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000008040000,Microsoft Xbox One S pad - Wired,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c62400001a53000000010000,Mini PE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000030000000300000002000000,Miroof,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux, +05000000d6200000e589000001000000,Moga 2 HID,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +05000000d6200000ad0d000001000000,Moga Pro,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +05000000d62000007162000001000000,Moga Pro 2 HID,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +03000000c62400002b89000011010000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c62400002a89000000010000,MOGA XP5-A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b22,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c62400001a89000000010000,MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000250900006688000000010000,MP-8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +030000006b140000010c000010010000,NACON GC-400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00000900000010010000,Natec Genesis P44,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000001008000001e5000010010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Linux, +060000007e0500000820000000000000,Nintendo Combined Joy-Cons (joycond),a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +030000007e0500003703000000016800,Nintendo GameCube Controller,a:b0,b:b2,dpdown:b6,dpleft:b4,dpright:b5,dpup:b7,lefttrigger:a4,leftx:a0,lefty:a1~,rightshoulder:b9,righttrigger:a5,rightx:a2,righty:a3~,start:b8,x:b1,y:b3,platform:Linux, +03000000790000004618000010010000,Nintendo GameCube Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a5~,righty:a2~,start:b9,x:b0,y:b3,platform:Linux, +050000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500000920000001800000,Nintendo Switch Pro Controller (joycond),a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +030000007e0500000920000011810000,Nintendo Switch Pro Controller Wired (joycond),a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +050000007e0500003003000001000000,Nintendo Wii Remote Pro Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +05000000010000000100000003000000,Nintendo Wiimote,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000000d0500000308000010010000,Nostromo n45 Dual Analog Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Linux, +03000000550900001072000011010000,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b8,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000550900001472000011010000,NVIDIA Controller v01.04,a:b0,b:b1,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Linux, +05000000550900001472000001000000,NVIDIA Controller v01.04,a:b0,b:b1,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Linux, +03000000451300000830000010010000,NYKO CORE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +19000000010000000100000001010000,odroidgo2_joypad,a:b1,b:b0,dpdown:b7,dpleft:b8,dpright:b9,dpup:b6,guide:b10,leftshoulder:b4,leftstick:b12,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b13,righttrigger:b14,start:b15,x:b2,y:b3,platform:Linux, +19000000010000000200000011000000,odroidgo2_joypad_v11,a:b1,b:b0,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b12,leftshoulder:b4,leftstick:b14,lefttrigger:b13,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:b16,start:b17,x:b2,y:b3,platform:Linux, +030000005e0400000202000000010000,Old Xbox pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +05000000362800000100000002010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux, +05000000362800000100000003010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux, +03000000830500005020000010010000,Padix Co. Ltd. Rockfire PSX/USB Bridge,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Linux, +03000000790000001c18000011010000,PC Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000ff1100003133000010010000,PC Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e0000b802000001010000,PDP AFTERGLOW Wired Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000b802000013020000,PDP AFTERGLOW Wired Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00006401000001010000,PDP Battlefield One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00008001000011010000,PDP CO. LTD. Faceoff Wired Pro Controller for Nintendo Switch,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00003101000000010000,PDP EA Sports Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000c802000012010000,PDP Kingdom Hearts Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00008701000011010000,PDP Rock Candy Wired Controller for Nintendo Switch,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e00000901000011010000,PDP Versus Fighting Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e0000a802000023020000,PDP Wired Controller for Xbox One,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000006f0e00008501000011010000,PDP Wired Fight Pad Pro for Nintendo Switch,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +05000000491900000204000000000000,PG-9118,x:b76,a:b73,b:b74,y:b77,back:b83,start:b84,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b79,lefttrigger:b81,rightshoulder:b80,righttrigger:b82,leftstick:b86,rightstick:b87,leftx:a0,lefty:a1,rightx:a2,righty:a3,platform:Linux, +0500000049190000030400001b010000,PG-9099,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000004c050000da0c000011010000,Playstation Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000c62400000053000000010000,PowerA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c62400003a54000001010000,PowerA 1428124-01,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000006dca000011010000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c62400001a58000001010000,PowerA Xbox One Cabled,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d040000d2ca000011010000,Precision Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000ff1100004133000010010000,PS2 Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000341a00003608000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004c0500006802000010010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c0500006802000010810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, 030000004c0500006802000011010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, -03000000451300000830000010010000,NYKO CORE,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:b6,righttrigger:b7,platform:Linux, -030000004c050000c405000011010000,Sony DualShock 4,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:b6,righttrigger:b7,platform:Linux, -030000006f0e00003001000001010000,EA Sports PS3 Controller,platform:Linux,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, -03000000de280000ff11000001000000,Valve Streaming Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, -030000005e0400008e02000014010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000004c0500006802000011810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000006f0e00001402000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000008f0e00000300000010010000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +050000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:a12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:a13,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +050000004c0500006802000000800000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c0500006802000000810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +05000000504c415953544154494f4e00,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +060000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c050000a00b000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004c050000a00b000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000c405000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004c050000c405000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004c050000cc09000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004c050000cc09000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +03000000c01100000140000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +050000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +050000004c050000c405000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000c405000001800000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +050000004c050000cc09000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000cc09000001800000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000e60c000011010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000300f00001211000011010000,QanBa Arcade JoyStick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,platform:Linux, +030000009b2800003200000001010000,Raphnet Technologies GC/N64 to USB v3.4,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800006000000001010000,Raphnet Technologies GC/N64 to USB v3.6,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800000300000001010000,raphnet.net 4nes4snes v1.5,a:b0,b:b4,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux, +030000008916000001fd000024010000,Razer Onza Classic Edition,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000008916000000fd000024010000,Razer Onza Tournament Edition,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000321500000204000011010000,Razer Panthera (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000104000011010000,Razer Panthera (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000810000011010000,Razer Panthera Evo Arcade Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000010000011010000,Razer RAIJU,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000507000000010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000321500000011000011010000,Razer Raion Fightpad for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000008916000000fe000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000045d000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000045d000025010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000321500000009000011010000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +050000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +0300000032150000030a000001010000,Razer Wildcat,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000790000001100000010010000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux, +0300000081170000990a000001010000,Retronic Adapter,a:b0,leftx:a0,lefty:a1,platform:Linux, +0300000000f000000300000000010000,RetroPad,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux, +030000006b140000010d000011010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000006b140000130d000011010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00001f01000000010000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00001e01000011010000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00004601000001010000,Rock Candy Xbox One Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000a306000023f6000011010000,Saitek Cyborg V.1 Game Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000a30600001005000000010000,Saitek P150,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b2,righttrigger:b5,x:b3,y:b4,platform:Linux, +03000000a30600000701000000010000,Saitek P220,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,x:b0,y:b1,platform:Linux, +03000000a30600000cff000010010000,Saitek P2500 Force Rumble Pad,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b0,y:b1,platform:Linux, +03000000a30600000c04000011010000,Saitek P2900 Wireless Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b12,x:b0,y:b3,platform:Linux, +03000000300f00001201000010010000,Saitek P380,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000a30600000901000000010000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,x:b0,y:b1,platform:Linux, +03000000a30600000b04000000010000,Saitek P990 Dual Analog Pad,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux, +03000000a306000018f5000010010000,Saitek PLC Saitek P3200 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000a306000020f6000011010000,Saitek PS2700 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000d81d00000e00000010010000,Savior,a:b0,b:b1,back:b8,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,start:b9,x:b4,y:b5,platform:Linux, +03000000c01600008704000011010000,Serial/Keyboard/Mouse/Joystick,a:b12,b:b10,back:b4,dpdown:b2,dpleft:b3,dpright:b1,dpup:b0,leftshoulder:b9,leftstick:b14,lefttrigger:b6,leftx:a1,lefty:a0,rightshoulder:b8,rightstick:b15,righttrigger:b7,rightx:a2,righty:a3,start:b5,x:b13,y:b11,platform:Linux, +03000000f025000021c1000010010000,ShanWan Gioteck PS3 Wired Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000632500007505000010010000,SHANWAN PS3/PC Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000bc2000000055000010010000,ShanWan PS3/PC Wired GamePad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000632500002305000010010000,ShanWan USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000341a00000908000010010000,SL-6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000250900000500000000010000,Sony PS2 pad with SmartJoy adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +030000005e0400008e02000073050000,Speedlink TORID Wireless Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000020200000,SpeedLink XEOX Pro Analog Gamepad pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d11800000094000011010000,Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000112000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000211000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000211000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux, +03000000de2800004211000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800004211000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux, +03000000de280000fc11000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000212000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000611000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de280000ff11000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000381000003014000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000381000003114000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +0500000011010000311400001b010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b32,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000110100001914000009010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000ad1b000038f0000090040000,Street Fighter IV FightStick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000003b07000004a1000000010000,Suncom SFX Plus for USB,a:b0,b:b2,back:b7,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Linux, +03000000666600000488000000010000,Super Joy Box 5 Pro,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +0300000000f00000f100000000010000,Super RetroPort,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux, +03000000457500002211000010010000,SZMY-POWER CO. LTD. GAMEPAD,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000008f0e00000d31000010010000,SZMY-POWER CO. LTD. GAMEPAD 3 TURBO,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000008f0e00001431000010010000,SZMY-POWER CO.,LTD. PS3 gamepad,a:b1,b:b2,x:b0,y:b3,back:b8,guide:b12,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Linux, +030000004f04000020b3000010010000,Thrustmaster 2 in 1 DT,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000015b3000010010000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000023b3000000010000,Thrustmaster Dual Trigger 3-in-1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004f0400000ed0000011010000,ThrustMaster eSwap PRO Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000b50700000399000000010000,Thrustmaster Firestorm Digital 2,a:b2,b:b4,back:b11,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b0,righttrigger:b9,start:b1,x:b3,y:b5,platform:Linux, +030000004f04000003b3000010010000,Thrustmaster Firestorm Dual Analog 2,a:b0,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b9,rightx:a2,righty:a3,x:b1,y:b3,platform:Linux, +030000004f04000000b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Linux, +030000004f04000026b3000002040000,Thrustmaster Gamepad GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000025b000002020000,Thrustmaster GPX Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000004f04000008d0000000010000,Thrustmaster Run N Drive Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000009d0000000010000,Thrustmaster Run N Drive Wireless PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000007d0000000010000,Thrustmaster T Mini Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000012b3000010010000,Thrustmaster vibrating gamepad,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +03000000bd12000015d0000010010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000d814000007cd000011010000,Toodles 2008 Chimp PC/PS3,a:b0,b:b1,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux, +030000005e0400008e02000070050000,Torid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c01100000591000011010000,Torid,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000100800000100000010010000,Twin USB PS2 Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000100800000300000010010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000790000000600000007010000,USB gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Linux, +03000000790000001100000000010000,USB Gamepad1,a:b2,b:b1,back:b8,dpdown:a0,dpleft:a1,dpright:a2,dpup:a4,start:b9,platform:Linux, +030000006f0e00000302000011010000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00000702000011010000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +05000000ac0500003232000001000000,VR-BOX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000791d00000103000010010000,Wii Classic Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +050000000d0f0000f600000001000000,Wireless HORIPAD Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, 030000005e0400008e02000010010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000014010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, 030000005e0400001907000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, -03000000100800000100000010010000,Twin USB PS2 Adapter,a:b2,b:b1,y:b0,x:b3,start:b9,guide:,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a2,lefttrigger:b4,righttrigger:b5,platform:Linux, -03000000a306000023f6000011010000,Saitek Cyborg V.1 Game Pad,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b6,righttrigger:b7,platform:Linux, -030000004f04000020b3000010010000,Thrustmaster 2 in 1 DT,a:b0,b:b2,y:b3,x:b1,start:b9,guide:,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7,platform:Linux, -030000004f04000023b3000000010000,Thrustmaster Dual Trigger 3-in-1,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a5, -030000008f0e00000300000010010000,GreenAsia Inc. USB Joystick ,platform:Linux,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, -030000008f0e00001200000010010000,GreenAsia Inc. USB Joystick ,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, -030000005e0400009102000007010000,X360 Wireless Controller,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:b13,dpleft:b11,dpdown:b14,dpright:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux, -030000006d04000016c2000010010000,Logitech Logitech Dual Action,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, -03000000260900008888000000010000,GameCube {WiseGroup USB box},a:b0,b:b2,y:b3,x:b1,start:b7,leftshoulder:,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,rightstick:,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,platform:Linux, -030000006d04000011c2000010010000,Logitech WingMan Cordless RumblePad,a:b0,b:b1,y:b4,x:b3,start:b8,guide:b5,back:b2,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:b9,righttrigger:b10,platform:Linux, -030000006d04000018c2000010010000,Logitech Logitech RumblePad 2 USB,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, -05000000d6200000ad0d000001000000,Moga Pro,platform:Linux,a:b0,b:b1,y:b3,x:b2,start:b6,leftstick:b7,rightstick:b8,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4, -030000004f04000009d0000000010000,Thrustmaster Run N Drive Wireless PS3,platform:Linux,a:b1,b:b2,x:b0,y:b3,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, -030000004f04000008d0000000010000,Thrustmaster Run N Drive Wireless,platform:Linux,a:b1,b:b2,x:b0,y:b3,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:b6,righttrigger:b7, -0300000000f000000300000000010000,RetroUSB.com RetroPad,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Linux, -0300000000f00000f100000000010000,RetroUSB.com Super RetroPort,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Linux, -030000006f0e00001f01000000010000,Generic X-Box pad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -03000000280400000140000000010000,Gravis GamePad Pro USB ,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftx:a0,lefty:a1, -030000005e0400008902000021010000,Microsoft X-Box pad v2 (US),platform:Linux,x:b3,a:b0,b:b1,y:b4,back:b6,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:a2,rightshoulder:b2,righttrigger:a5,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a3,righty:a4, -030000005e0400008502000000010000,Microsoft X-Box pad (Japan),platform:Linux,x:b3,a:b0,b:b1,y:b4,back:b6,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:a2,rightshoulder:b2,righttrigger:a5,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a3,righty:a4, -030000006f0e00001e01000011010000,Rock Candy Gamepad for PS3,platform:Linux,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,guide:b12,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, -03000000250900000500000000010000,Sony PS2 pad with SmartJoy adapter,platform:Linux,a:b2,b:b1,y:b0,x:b3,start:b8,back:b9,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b4,righttrigger:b5, -030000008916000000fd000024010000,Razer Onza Tournament,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:b13,dpleft:b11,dpdown:b14,dpright:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux, -030000004f04000000b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,y:b3,x:b1,start:b10,guide:b8,back:b9,leftstick:b11,rightstick:b12,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7,platform:Linux, -03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux, -050000004c050000c405000000010000,PS4 Controller (Bluetooth),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, -060000004c0500006802000000010000,PS3 Controller (Bluetooth),a:b14,b:b13,y:b12,x:b15,start:b3,guide:b16,back:b0,leftstick:b1,rightstick:b2,leftshoulder:b10,rightshoulder:b11,dpup:b4,dpleft:b7,dpdown:b6,dpright:b5,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b8,righttrigger:b9,platform:Linux, -050000004c0500006802000000010000,PS3 Controller (Bluetooth),a:b14,b:b13,y:b12,x:b15,start:b3,guide:b16,back:b0,leftstick:b1,rightstick:b2,leftshoulder:b10,rightshoulder:b11,dpup:b4,dpleft:b7,dpdown:b6,dpright:b5,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b8,righttrigger:b9,platform:Linux, -05000000504c415953544154494f4e00,PS3 Controller (Bluetooth),a:b14,b:b13,y:b12,x:b15,start:b3,guide:b16,back:b0,leftstick:b1,rightstick:b2,leftshoulder:b10,rightshoulder:b11,dpup:b4,dpleft:b7,dpdown:b6,dpright:b5,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b8,righttrigger:b9,platform:Linux, -03000000790000000600000010010000,DragonRise Inc. Generic USB Joystick ,platform:Linux,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a4, -03000000666600000488000000010000,Super Joy Box 5 Pro,platform:Linux,a:b2,b:b1,x:b3,y:b0,back:b9,start:b8,leftshoulder:b6,rightshoulder:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b4,righttrigger:b5,dpup:b12,dpleft:b15,dpdown:b14,dpright:b13, -05000000362800000100000002010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,platform:Linux,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2, -05000000362800000100000003010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,platform:Linux,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2, -030000008916000001fd000024010000,Razer Onza Classic Edition,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:b11,dpdown:b14,dpright:b12,dpup:b13,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -030000005e040000d102000001010000,Microsoft X-Box One pad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -030000005e040000dd02000003020000,Microsoft X-Box One pad v2,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,platform:Linux, -03000000790000001100000010010000,RetroLink Saturn Classic Controller,platform:Linux,x:b3,a:b0,b:b1,y:b4,back:b5,guide:b2,start:b8,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1, -050000007e0500003003000001000000,Nintendo Wii U Pro Controller,platform:Linux,a:b0,b:b1,x:b3,y:b2,back:b8,start:b9,guide:b10,leftshoulder:b4,rightshoulder:b5,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,dpup:b13,dpleft:b15,dpdown:b14,dpright:b16, -030000005e0400008e02000004010000,Microsoft X-Box 360 pad,platform:Linux,a:b0,b:b1,x:b2,y:b3,back:b6,start:b7,guide:b8,leftshoulder:b4,rightshoulder:b5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, -030000000d0f00002200000011010000,HORI CO. LTD. REAL ARCADE Pro.V3,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,guide:b12,start:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1, -030000000d0f00001000000011010000,HORI CO. LTD. FIGHTING STICK 3,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,guide:b12,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7 -03000000f0250000c183000010010000,Goodbetterbest Ltd USB Controller,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,guide:b12,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, -03000000f0250000c283000010010000,Goodbetterbest Ltd PC USB Controller,platform:Linux,a:b1,b:b2,x:b0,y:b3,back:b8,guide:b12,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7 -0000000058626f782047616d65706100,Xbox Gamepad (userspace driver),platform:Linux,a:b0,b:b1,x:b2,y:b3,start:b7,back:b6,guide:b8,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,lefttrigger:a5,righttrigger:a4,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a2,righty:a3, -03000000ff1100003133000010010000,PC Game Controller,a:b2,b:b1,y:b0,x:b3,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Linux, -030000005e0400008e02000020200000,SpeedLink XEOX Pro Analog Gamepad pad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -030000006f0e00001304000000010000,Generic X-Box pad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:a0,rightstick:a3,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -03000000a306000018f5000010010000,Saitek PLC Saitek P3200 Rumble Pad,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a4, -03000000830500006020000010010000,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,x:b3,y:b2,back:b6,start:b7,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,platform:Linux, -03000000c9110000f055000011010000,HJC Game GAMEPAD,leftx:a0,lefty:a1,dpdown:h0.4,rightstick:b11,rightshoulder:b5,rightx:a2,start:b9,righty:a3,dpleft:h0.8,lefttrigger:b6,x:b2,dpup:h0.1,back:b8,leftstick:b10,leftshoulder:b4,y:b3,a:b0,dpright:h0.2,righttrigger:b7,b:b1,platform:Linux, -03000000a30600000c04000011010000,Saitek P2900 Wireless Pad,a:b1,b:b2,y:b3,x:b0,start:b12,guide:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a2,lefttrigger:b4,righttrigger:b5,platform:Linux, -03000000341a000005f7000010010000,GameCube {HuiJia USB box},a:b1,b:b2,y:b3,x:b0,start:b9,guide:,back:,leftstick:,rightstick:,leftshoulder:,dpleft:b15,dpdown:b14,dpright:b13,leftx:a0,lefty:a1,rightx:a5,righty:a2,lefttrigger:a3,righttrigger:a4,rightshoulder:b7,dpup:b12,platform:Linux, -030000006e0500000320000010010000,JC-U3613M - DirectInput Mode,platform:Linux,x:b0,a:b2,b:b3,y:b1,back:b10,guide:b12,start:b11,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3, -030000006f0e00004601000001010000,Rock Candy Wired Controller for Xbox One,platform:Linux,a:b0,b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,guide:b8,leftstick:b9,rightstick:b10,lefttrigger:a2,righttrigger:a5,leftx:a0,lefty:a1,rightx:a3,righty:a4, -03000000380700001647000010040000,Mad Catz Wired Xbox 360 Controller,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -030000006f0e00003901000020060000,Afterglow Wired Controller for Xbox One,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,platform:Linux, -030000004f04000015b3000010010000,Thrustmaster Dual Analog 4,platform:Linux,a:b0,b:b2,x:b1,y:b3,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7, -05000000102800000900000000010000,8Bitdo SFC30 GamePad,platform:Linux,x:b4,a:b1,b:b0,y:b3,back:b10,start:b11,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1, -03000000d81400000862000011010000,HitBox (PS3/PC) Analog Mode,platform:Linux,a:b1,b:b2,y:b3,x:b0,start:b12,guide:b9,back:b8,leftshoulder:b4,rightshoulder:b5,lefttrigger:b6,righttrigger:b7,leftx:a0,lefty:a1, -030000000d0f00000d00000000010000,hori,platform:Linux,a:b0,b:b6,y:b2,x:b1,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,start:b9,guide:b10,back:b8,leftshoulder:b3,rightshoulder:b7,leftx:b4,lefty:b5, -030000000d0f00006700000001010000,HORIPAD ONE,platform:Linux,a:b0,b:b1,x:b2,y:b3,back:b6,start:b7,guide:b8,leftshoulder:b4,rightshoulder:b5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, -03000000ad1b000016f0000090040000,Mad Catz Xbox 360 Controller,platform:Linux,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5, -03000000d814000007cd000011010000,Toodles 2008 Chimp PC/PS3,platform:Linux,a:b0,b:b1,y:b2,x:b3,start:b9,back:b8,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,lefttrigger:b6,righttrigger:b7, -03000000fd0500000030000000010000,InterAct GoPad I-73000 (Fighting Game Layout),platform:Linux,a:b3,b:b4,y:b1,x:b0,start:b7,back:b6,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5, -05000000010000000100000003000000,Nintendo Wiimote,platform:Linux,a:b0,b:b1,y:b3,x:b2,start:b9,guide:b10,back:b8,leftstick:b11,rightstick:b12,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, -030000005e0400008e02000062230000,Microsoft X-Box 360 pad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -03000000a30600000901000000010000,Saitek P880,a:b2,b:b3,y:b1,x:b0,leftstick:b8,rightstick:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a2,lefttrigger:b6,righttrigger:b7,platform:Linux, -030000006f0e00000103000000020000,Logic3 Controller,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -05000000380700006652000025010000,Mad Catz C.T.R.L.R ,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,guide:b12,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, -06000000adde0000efbe000002010000,Hidromancer Game Controller,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -03000000c01600008704000011010000,Serial/Keyboard/Mouse/Joystick,platform:Linux,a:b12,b:b10,x:b13,y:b11,back:b4,start:b5,leftstick:b14,rightstick:b15,leftshoulder:b9,rightshoulder:b8,dpup:b0,dpdown:b2,dpleft:b3,dpright:b1,leftx:a1,lefty:a0,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, -05000000a00500003232000001000000,8Bitdo Zero GamePad,platform:Linux,a:b0,b:b1,x:b3,y:b4,back:b10,start:b11,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1, -03000000780000000600000010010000,Microntek USB Joystick,platform:Linux,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,leftx:a0,lefty:a1, -03000000ad1b00002ef0000090040000,Mad Catz Fightpad SFxT,platform:Linux,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,lefttrigger:a2,righttrigger:a5, -03000000100800000300000010010000,USB Gamepad,platform:Linux,a:b2,b:b1,x:b3,y:b0,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a2,lefttrigger:b4,righttrigger:b5, -030000005e0400008e02000073050000,Speedlink TORID Wireless Gamepad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, -030000001008000001e5000010010000,NEXT Classic USB Game Controller,a:b0,b:b1,back:b8,start:b9,rightx:a2,righty:a3,leftx:a0,lefty:a1,platform:Linux, -030000006d04000016c2000011010000,Logitech F310 Gamepad (DInput),x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,platform:Linux, -03000000bd12000015d0000010010000,Tomee SNES USB Controller,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,platform:Linux, -050000004c050000cc09000000010000,Sony DualShock 4 V2 BT,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b13,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:a3,righttrigger:a4,platform:Linux, -030000004c050000a00b000011010000,Sony DualShock 4 Wireless Adaptor,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b13,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:a3,righttrigger:a4,platform:Linux, -05000000ac0500003232000001000000,VR-BOX,platform:Linux,a:b0,b:b1,x:b2,y:b3,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a2,lefttrigger:b4,righttrigger:b5, -030000004c050000cc09000011010000,Sony DualShock 4 V2,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:a3,righttrigger:a4,platform:Linux, -030000004c050000cc09000011810000,Sony Interactive Entertainment Wireless Controller,platform:Linux,x:b3,a:b0,b:b1,y:b2,back:b8,guide:b10,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b6,rightshoulder:b5,righttrigger:a5,leftstick:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4, -050000004c050000cc09000000810000,Wireless Controller,platform:Linux,x:b3,a:b0,b:b1,y:b2,back:b8,guide:b10,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b6,rightshoulder:b5,righttrigger:a5,leftstick:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4, -030000004c0500006802000011810000,Sony PLAYSTATION(R)3 Controller,platform:Linux,x:b3,a:b0,b:b1,y:b2,back:b8,guide:b10,start:b9,dpleft:b15,dpdown:b14,dpright:b16,dpup:b13,leftshoulder:b4,lefttrigger:a2,rightshoulder:b6,rightshoulder:b5,righttrigger:a5,leftstick:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4, -050000004c0500006802000000810000,PLAYSTATION(R)3 Controller,platform:Linux,x:b3,a:b0,b:b1,y:b2,back:b8,guide:b10,start:b9,dpleft:b15,dpdown:b14,dpright:b16,dpup:b13,leftshoulder:b4,lefttrigger:a2,rightshoulder:b6,rightshoulder:b5,righttrigger:a5,leftstick:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4, -03000000c82d00000190000011010000,8Bitdo NES30 Pro 8Bitdo NES30 Pro,platform:Linux,a:b1,b:b0,x:b4,y:b3,back:b10,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5, -05000000c82d00002038000000010000,8Bitdo NES30 Pro,platform:Linux,a:b1,b:b0,x:b4,y:b3,back:b10,guide:b2,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4, -030000005e040000a102000000010000,Xbox 360 Wireless Receiver,platform:Linux,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:b13,dpdown:b14,dpleft:b11,dpright:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5, -050000004c050000cc09000001000000,Sony DualShock 4 V2 BT,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:a3,righttrigger:a4,platform:Linux, -03000000bc2000006412000011010000,BETOP CONTROLLER,a:b2,b:b1,y:b0,x:b3,start:b9,guide:b30,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Linux, -05000000c82d00000161000000010000,8Bitdo SN30 Pro,platform:Linux,a:b1,b:b0,x:b4,y:b3,back:b10,guide:b2,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4, -03000000380700008532000010010000,MadCatz Madcatz Fightpad,platform:Linux,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,lefttrigger:b5,righttrigger:b7, -030000000d0f0000ee00000011010000,HORI CO.,LTD. HORIPAD mini4,platform:Linux,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, -030000000d0f0000c100000011010000,HORI CO.,LTD. HORIPAD S,platform:Linux,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, -03000000ad1b000003f5000033050000,Hori Fighting Stick VX,platform:Linux,a:b0,b:b1,x:b2,y:b3,back:b8,guide:b10,start:b9,leftshoulder:b4,rightshoulder:b5,-leftx:h0.8,+leftx:h0.2,-lefty:h0.1,+lefty:h0.4,lefttrigger:b6,righttrigger:b7, -03000000c82d00000260000011010000,8Bitdo SF30 Pro 8BitDo SN30 Pro+,platform:Linux,a:b1,b:b0,x:b4,y:b3,back:b10,guide:b2,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4, -060000007e0500000820000000000000,Nintendo Switch Combined Joy-Cons,platform:Linux,a:b0,b:b1,x:b3,y:b2,back:b9,guide:b11,start:b10,leftstick:b12,rightstick:b13,leftshoulder:b5,rightshoulder:b6,dpup:b14,dpdown:b15,dpleft:b16,dpright:b17,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b7,righttrigger:b8, +030000005e0400009102000007010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000007010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +0000000058626f782033363020576900,Xbox 360 Wireless Controller,a:b0,b:b1,back:b14,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b7,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux, +030000005e040000a102000014010000,Xbox 360 Wireless Receiver (XBOX),a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +0000000058626f782047616d65706100,Xbox Gamepad (userspace driver),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000d102000002010000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000fd02000030110000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000050b000002090000,Xbox One Elite Series 2,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e040000ea02000000000000,Xbox One Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000e002000003090000,Xbox One Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000fd02000003090000,Xbox One Wireless Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e040000ea02000001030000,Xbox One Wireless Controller (Model 1708),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000001050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e0400008e02000000010000,xbox360 Wireless EasySMX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000450c00002043000010010000,XEOX Gamepad SL-6556-BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000ac0500005b05000010010000,Xiaoji Gamesir-G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +05000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux, +03000000c0160000e105000001010000,Xin-Mo Xin-Mo Dual Arcade,a:b4,b:b3,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b9,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b1,y:b0,platform:Linux, +xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000120c0000100e000011010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000101e000011010000,ZEROPLUS P4 Wired Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000c0160000dc27000001010000,OnyxSoft Dual JoyDivision,platform:Linux,a:b0,b:b1,x:b2,y:b3,start:b6,leftshoulder:b4,rightshoulder:b5,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0, + +# Android +05000000c82d000006500000ffff3f00,8BitDo M30 Gamepad,a:b1,b:b0,back:b4,guide:b17,leftshoulder:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a4,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000051060000ffff3f00,8BitDo M30 Gamepad,a:b1,b:b0,back:b4,guide:b17,leftshoulder:b9,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000015900000ffff3f00,8BitDo N30 Pro 2,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000065280000ffff3f00,8BitDo N30 Pro 2,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b17,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000000220000000900000ffff3f00,8BitDo NES30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000002038000009000000ffff3f00,8BitDo NES30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000000600000ffff3f00,8BitDo SF30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b15,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b16,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000000610000ffff3f00,8BitDo SF30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000012900000ffff3f00,8BitDo SN30 Gamepad,a:b1,b:b0,back:b4,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000062280000ffff3f00,8BitDo SN30 Gamepad,a:b1,b:b0,back:b4,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000001600000ffff3f00,8BitDo SN30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000002600000ffff0f00,8BitDo SN30 Pro+,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b17,leftshoulder:b9,leftstick:b7,lefttrigger:b15,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b16,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000002028000009000000ffff3f00,8BitDo SNES30 Gamepad,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000003512000020ab000000780f00,8BitDo SNES30 Gamepad,a:b21,b:b20,back:b30,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b26,rightshoulder:b27,start:b31,x:b24,y:b23,platform:Android, +05000000c82d000018900000ffff0f00,8BitDo Zero 2,a:b1,b:b0,back:b4,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000030320000ffff0f00,8BitDo Zero 2,a:b1,b:b0,back:b4,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +05000000bc20000000550000ffff3f00,GameSir G3w,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000d6020000e5890000dfff3f00,GPD XD Plus,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, +0500000031366332860c44aadfff0f00,GS Gamepad,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b15,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b16,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +0500000083050000602000000ffe0000,iBuffalo SNES Controller,a:b1,b:b0,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b15,rightshoulder:b16,start:b10,x:b3,y:b2,platform:Android, +64633436313965656664373634323364,Microsoft X-Box 360 pad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android, +7573622067616d657061642020202020,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Android, +050000007e05000009200000ffff0f00,Nintendo Switch Pro Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b16,x:b17,y:b2,platform:Android, +37336435666338653565313731303834,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4e564944494120436f72706f72617469,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +61363931656135336130663561616264,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005509000003720000cf7f3f00,NVIDIA Controller v01.01,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005509000010720000ffff3f00,NVIDIA Controller v01.03,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005509000014720000df7f3f00,NVIDIA Controller v01.04,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, +050000004c05000068020000dfff3f00,PS3 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +030000004c050000cc09000000006800,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000c4050000fffe3f00,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000c4050000ffff3f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000cc090000fffe3f00,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000cc090000ffff3f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35643031303033326130316330353564,PS4 Controller,a:b1,b:b17,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000e60c0000fffe3f00,PS5 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +62653861643333663663383332396665,Razer Kishi,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000005070000ffff3f00,Razer Raiju Mobile,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000007070000ffff3f00,Razer Raiju Mobile,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000000090000bf7f3f00,Razer Serval,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android, +32633532643734376632656664383733,Sony DualSense,a:b1,b:b19,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +61303162353165316365336436343139,Sony DualSense,a:b1,b:b19,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Android, +05000000de2800000611000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Android, +050000004f0400000ed00000fffe3f00,ThrustMaster eSwap PRO Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +5477696e20555342204a6f7973746963,Twin USB Joystick,a:b22,b:b21,back:b28,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b26,leftstick:b30,lefttrigger:b24,leftx:a0,lefty:a1,rightshoulder:b27,rightstick:b31,righttrigger:b25,rightx:a3,righty:a2,start:b29,x:b23,y:b20,platform:Android, +30306539356238653637313730656134,Wireless HORIPAD Switch Pro Controller,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +050000005e040000fd020000ff7f3f00,Xbox One S Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000e00200000ffe3f00,Xbox One Wireless Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b17,y:b2,platform:Android, +050000005e040000fd020000ffff3f00,Xbox One Wireless Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000130b0000ffff3f00,Xbox Series Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65633038363832353634653836396239,Xbox Series Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e04000091020000ff073f00,Xbox Wireless Controller,a:b0,b:b1,back:b4,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +34356136633366613530316338376136,Xbox Wireless Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,x:b17,y:b2,platform:Android, +050000001727000044310000ffff3f00,XiaoMi Game Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a6,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, + +# iOS +05000000ac0500000100000000006d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac050000010000004f066d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac05000001000000cf076d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac05000001000000df076d01,*,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +05000000ac05000001000000ff076d01,*,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +05000000ac0500000200000000006d02,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,rightshoulder:b5,x:b2,y:b3,platform:iOS, +05000000ac050000020000004f066d02,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,rightshoulder:b5,x:b2,y:b3,platform:iOS, +4d466947616d65706164010000000000,MFi Extended Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:iOS, +4d466947616d65706164020000000000,MFi Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b6,x:b2,y:b3,platform:iOS, +050000004c050000cc090000df070000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000004c050000cc090000ff070000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000004c050000cc090000ff870001,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,touchpad:b11,x:b2,y:b3,platform:iOS, +05000000ac0500000300000000006d03,Remote,a:b0,b:b2,leftx:a0,lefty:a1,platform:iOS, +05000000ac0500000300000043006d03,Remote,a:b0,b:b2,leftx:a0,lefty:a1,platform:iOS, +05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:iOS, +05000000de2800000611000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:iOS, +050000005e040000050b0000ff070001,Xbox Elite Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b13,paddle3:b12,paddle4:b14,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000005e040000e0020000df070000,Xbox Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000005e040000e0020000ff070000,Xbox Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, From be88a42bad207a2c723c3cdb152a872e1a7f14af Mon Sep 17 00:00:00 2001 From: erorcun Date: Thu, 28 Jan 2021 00:51:43 +0300 Subject: [PATCH 010/113] Fix some Collision NaN/inf's --- src/collision/Collision.cpp | 21 +++++++++++++++++++-- src/core/World.cpp | 8 ++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/collision/Collision.cpp b/src/collision/Collision.cpp index bead5183..50c22e32 100644 --- a/src/collision/Collision.cpp +++ b/src/collision/Collision.cpp @@ -307,8 +307,16 @@ CCollision::TestLineTriangle(const CColLine &line, const CompressedVector *verts if(plane.CalcPoint(line.p0) * plane.CalcPoint(line.p1) > 0.0f) return false; + float p0dist = DotProduct(line.p1 - line.p0, normal); + +#ifdef FIX_BUGS + // line lines in the plane, assume no collision + if (p0dist == 0.0f) + return false; +#endif + // intersection parameter on line - t = -plane.CalcPoint(line.p0) / DotProduct(line.p1 - line.p0, normal); + t = -plane.CalcPoint(line.p0) / p0dist; // find point of intersection CVector p = line.p0 + (line.p1-line.p0)*t; @@ -1127,8 +1135,17 @@ CCollision::ProcessLineTriangle(const CColLine &line, if(plane.CalcPoint(line.p0) * plane.CalcPoint(line.p1) > 0.0f) return false; + float p0dist = DotProduct(line.p1 - line.p0, normal); + +#ifdef FIX_BUGS + // line lines in the plane, assume no collision + if (p0dist == 0.0f) + return false; +#endif + // intersection parameter on line - t = -plane.CalcPoint(line.p0) / DotProduct(line.p1 - line.p0, normal); + t = -plane.CalcPoint(line.p0) / p0dist; + // early out if we're beyond the mindist if(t >= mindist) return false; diff --git a/src/core/World.cpp b/src/core/World.cpp index bc698c83..9da36e7a 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -452,10 +452,10 @@ CWorld::ProcessVerticalLineSector(CSector §or, const CColLine &line, CColPoi } bool -CWorld::ProcessVerticalLineSectorList(CPtrList &list, const CColLine &line, CColPoint &point, float &dist, +CWorld::ProcessVerticalLineSectorList(CPtrList &list, const CColLine &line, CColPoint &point, float &mindist, CEntity *&entity, bool ignoreSeeThrough, CStoredCollPoly *poly) { - float mindist = dist; + float dist = mindist; CPtrNode *node; CEntity *e; CColModel *colmodel; @@ -472,8 +472,8 @@ CWorld::ProcessVerticalLineSectorList(CPtrList &list, const CColLine &line, CCol } } - if(mindist < dist) { - dist = mindist; + if(dist < mindist) { + mindist = dist; return true; } else return false; From 8a7c7efe855b06825d29e8fcfbd3abc4d9ec3336 Mon Sep 17 00:00:00 2001 From: kusst <49589982+kusst@users.noreply.github.com> Date: Wed, 27 Jan 2021 23:56:23 +0100 Subject: [PATCH 011/113] ifdefs + fix progressbar being under dialogbox --- src/rw/TexRead.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/rw/TexRead.cpp b/src/rw/TexRead.cpp index 5c7f7158..1f96180b 100644 --- a/src/rw/TexRead.cpp +++ b/src/rw/TexRead.cpp @@ -1,6 +1,7 @@ #pragma warning( push ) #pragma warning( disable : 4005) #pragma warning( pop ) +#define FORCE_PC_SCALING #ifndef LIBRW #define WITHD3D #endif @@ -320,7 +321,11 @@ ConvertingTexturesScreen(uint32 num, uint32 count, const char *text) splash->Draw(CRect(0.0f, 0.0f, SCREEN_WIDTH, SCREEN_HEIGHT), CRGBA(255, 255, 255, 255)); CSprite2d::DrawRect(CRect(SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(240.0f), SCREEN_SCALE_FROM_RIGHT(200.0f), SCREEN_SCALE_Y(248.0f)), CRGBA(64, 64, 64, 255)); +#ifdef FIX_BUGS CSprite2d::DrawRect(CRect(SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(240.0f), (SCREEN_SCALE_FROM_RIGHT(200.0f) - SCREEN_SCALE_X(200.0f)) * ((float)num / (float)count) + SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(248.0f)), CRGBA(255, 150, 225, 255)); +#else + CSprite2d::DrawRect(CRect(SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(240.0f), (SCREEN_SCALE_FROM_RIGHT(200.0f) - SCREEN_SCALE_X(200.0f)) * ((float)num / (float)count) + SCREEN_SCALE_X(200.0f), SCREEN_SCALE_Y(248.0f)), CRGBA(255, 217, 106, 255)); +#endif CSprite2d::DrawRect(CRect(SCREEN_SCALE_X(120.0f), SCREEN_SCALE_Y(150.0f), SCREEN_SCALE_FROM_RIGHT(120.0f), SCREEN_HEIGHT - SCREEN_SCALE_Y(220.0f)), CRGBA(50, 50, 50, 210)); CFont::SetBackgroundOff(); @@ -329,7 +334,11 @@ ConvertingTexturesScreen(uint32 num, uint32 count, const char *text) CFont::SetCentreOff(); CFont::SetWrapx(SCREEN_SCALE_FROM_RIGHT(170.0f)); CFont::SetJustifyOff(); +#ifdef FIX_BUGS CFont::SetColor(CRGBA(255, 150, 225, 255)); +#else + CFont::SetColor(CRGBA(255, 217, 106, 255)); +#endif CFont::SetBackGroundOnlyTextOff(); CFont::SetFontStyle(FONT_STANDARD); CFont::PrintString(SCREEN_SCALE_X(170.0f), SCREEN_SCALE_Y(160.0f), TheText.Get(text)); From e1e4be9017246cc6b4d14d5b5d346c5c142941c0 Mon Sep 17 00:00:00 2001 From: erorcun Date: Thu, 28 Jan 2021 03:49:50 +0300 Subject: [PATCH 012/113] Use previous naming & fix LineOfSightSectorList too --- src/core/World.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/World.cpp b/src/core/World.cpp index 9da36e7a..ef1cc948 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -367,7 +367,7 @@ CWorld::ProcessLineOfSightSectorList(CPtrList &list, const CColLine &line, CColP } else if(e->bUsesCollision) colmodel = CModelInfo::GetModelInfo(e->GetModelIndex())->GetColModel(); - if(colmodel && CCollision::ProcessLineOfSight(line, e->GetMatrix(), *colmodel, point, dist, + if(colmodel && CCollision::ProcessLineOfSight(line, e->GetMatrix(), *colmodel, point, mindist, ignoreSeeThrough, ignoreShootThrough)) entity = e; if(carTyres && ((CVehicle*)e)->SetUpWheelColModel(&tyreCol) && CCollision::ProcessLineOfSight(line, e->GetMatrix(), tyreCol, tyreColPoint, tyreDist, false, ignoreShootThrough)){ @@ -452,10 +452,10 @@ CWorld::ProcessVerticalLineSector(CSector §or, const CColLine &line, CColPoi } bool -CWorld::ProcessVerticalLineSectorList(CPtrList &list, const CColLine &line, CColPoint &point, float &mindist, +CWorld::ProcessVerticalLineSectorList(CPtrList &list, const CColLine &line, CColPoint &point, float &dist, CEntity *&entity, bool ignoreSeeThrough, CStoredCollPoly *poly) { - float dist = mindist; + float mindist = dist; CPtrNode *node; CEntity *e; CColModel *colmodel; @@ -466,14 +466,14 @@ CWorld::ProcessVerticalLineSectorList(CPtrList &list, const CColLine &line, CCol e->m_scanCode = GetCurrentScanCode(); colmodel = CModelInfo::GetModelInfo(e->GetModelIndex())->GetColModel(); - if(CCollision::ProcessVerticalLine(line, e->GetMatrix(), *colmodel, point, dist, + if(CCollision::ProcessVerticalLine(line, e->GetMatrix(), *colmodel, point, mindist, ignoreSeeThrough, false, poly)) entity = e; } } - if(dist < mindist) { - mindist = dist; + if(mindist < dist) { + dist = mindist; return true; } else return false; From 9e3c19237630d689a0edff0bbec91226bba567e9 Mon Sep 17 00:00:00 2001 From: aap Date: Thu, 28 Jan 2021 15:35:35 +0100 Subject: [PATCH 013/113] fix some little UB --- src/extras/custompipes_gl.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/extras/custompipes_gl.cpp b/src/extras/custompipes_gl.cpp index 67be4afd..8a574579 100644 --- a/src/extras/custompipes_gl.cpp +++ b/src/extras/custompipes_gl.cpp @@ -333,7 +333,12 @@ glossRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) V3d eyePos = rw::engine->currentCamera->getFrame()->getLTM()->pos; glUniform3fv(U(u_eye), 1, (float*)&eyePos); - glUniform4fv(U(u_reflProps), 1, (float*)&GlossMult); + float reflProps[4]; + reflProps[0] = GlossMult; + reflProps[1] = 0.0f; + reflProps[2] = 0.0f; + reflProps[3] = 0.0f; + glUniform4fv(U(u_reflProps), 1, reflProps); SetRenderState(VERTEXALPHA, TRUE); SetRenderState(SRCBLEND, BLENDONE); From 7056f9954f0e5afc8aa9c8c25a725cce1439cfd6 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Thu, 28 Jan 2021 23:23:49 +0300 Subject: [PATCH 014/113] fix --- src/control/Script3.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/control/Script3.cpp b/src/control/Script3.cpp index 1ac18fa8..acd3988f 100644 --- a/src/control/Script3.cpp +++ b/src/control/Script3.cpp @@ -1701,6 +1701,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) pBoat->AutoPilot.m_nCarMission = MISSION_GOTOCOORDS_ASTHECROWSWIMS; pBoat->AutoPilot.m_vecDestinationCoors = pos; pBoat->SetStatus(STATUS_PHYSICS); + pBoat->bEngineOn = true; pBoat->AutoPilot.m_nCruiseSpeed = Max(1, pBoat->AutoPilot.m_nCruiseSpeed); pBoat->AutoPilot.m_nAntiReverseTimer = CTimer::GetTimeInMilliseconds(); return 0; From 810bad9fd8cf344f7d73b82f042910a4c443b0f7 Mon Sep 17 00:00:00 2001 From: erorcun Date: Fri, 29 Jan 2021 01:44:33 +0300 Subject: [PATCH 015/113] Fix some UBs --- src/audio/MusicManager.cpp | 5 ++++- src/audio/MusicManager.h | 2 +- src/control/PathFind.cpp | 2 +- src/control/PathFind.h | 8 ++++---- src/core/Frontend.cpp | 25 ++++++++++++++++--------- src/core/main.cpp | 5 +++++ src/peds/Ped.h | 2 +- src/skel/crossplatform.cpp | 8 ++++---- 8 files changed, 36 insertions(+), 21 deletions(-) diff --git a/src/audio/MusicManager.cpp b/src/audio/MusicManager.cpp index acfe09c3..374de081 100644 --- a/src/audio/MusicManager.cpp +++ b/src/audio/MusicManager.cpp @@ -1223,8 +1223,11 @@ cMusicManager::DisplayRadioStationName() gNumRetunePresses++; } else +#ifdef FIX_BUGS + track = m_nFrontendTrack == NO_TRACK ? POLICE_RADIO : m_nFrontendTrack; +#else track = m_nFrontendTrack; - +#endif wchar* string = nil; switch (track) { diff --git a/src/audio/MusicManager.h b/src/audio/MusicManager.h index f103e84e..5691b7b8 100644 --- a/src/audio/MusicManager.h +++ b/src/audio/MusicManager.h @@ -29,7 +29,7 @@ public: uint32 m_nResetTime; bool m_bRadioSetByScript; uint8 m_nRadioStation; - uint32 m_nRadioPosition; + int32 m_nRadioPosition; uint32 m_nRadioInCar; uint32 m_nFrontendTrack; uint32 m_nPlayingTrack; diff --git a/src/control/PathFind.cpp b/src/control/PathFind.cpp index 2d3972f6..bf72199d 100644 --- a/src/control/PathFind.cpp +++ b/src/control/PathFind.cpp @@ -859,7 +859,7 @@ CPathFind::PreparePathDataForType(uint8 type, CTempNode *tempnodes, CPathInfoFor mag = Sqrt(dx*dx + dy*dy); dx /= mag; dy /= mag; - int width = Max(m_pathNodes[i].width, m_pathNodes[j].width); + uint8 width = Max(m_pathNodes[i].width, m_pathNodes[j].width); if(i < j){ dx = -dx; dy = -dy; diff --git a/src/control/PathFind.h b/src/control/PathFind.h index acf9929a..99759590 100644 --- a/src/control/PathFind.h +++ b/src/control/PathFind.h @@ -120,7 +120,7 @@ struct CCarPathLink uint8 trafficLightDirection : 1; uint8 trafficLightType : 2; uint8 bBridgeLights : 1; // at least in LCS... - int8 width; + uint8 width; CVector2D GetPosition(void) { return CVector2D(x/8.0f, y/8.0f); } CVector2D GetDirection(void) { return CVector2D(dirX/100.0f, dirY/100.0f); } @@ -151,7 +151,7 @@ struct CPathInfoForObject int8 numLeftLanes; int8 numRightLanes; int8 speedLimit; - int8 width; + uint8 width; uint8 crossing : 1; uint8 onlySmallBoats : 1; @@ -177,7 +177,7 @@ struct CTempNode int16 link2; int8 numLeftLanes; int8 numRightLanes; - int8 width; + uint8 width; bool isCross; int8 linkState; }; @@ -188,7 +188,7 @@ struct CTempNodeExternal // made up name int16 next; int8 numLeftLanes; int8 numRightLanes; - int8 width; + uint8 width; bool isCross; }; diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 5fe3d6be..f38efb66 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -5567,33 +5567,40 @@ void CMenuManager::DrawQuitGameScreen(void) { static int32 exitSignalTimer = 0; + +#ifdef FIX_BUGS + int alpha = clamp(m_nMenuFadeAlpha, 0, 255); +#else + int alpha = m_nMenuFadeAlpha; +#endif + #ifndef MUCH_SHORTER_OUTRO_SCREEN static PauseModeTime lastTickIncrease = 0; - if (m_nMenuFadeAlpha == 255 && CTimer::GetTimeInMillisecondsPauseMode() - lastTickIncrease > 10) { + if (alpha == 255 && CTimer::GetTimeInMillisecondsPauseMode() - lastTickIncrease > 10) { exitSignalTimer++; lastTickIncrease = CTimer::GetTimeInMillisecondsPauseMode(); } #else - static PauseModeTime sincePress = 0; - sincePress += frameTime; - if (sincePress > 500) + static PauseModeTime firstTick = CTimer::GetTimeInMillisecondsPauseMode(); + if (alpha == 255 && CTimer::GetTimeInMillisecondsPauseMode() - firstTick > 1000) { exitSignalTimer = 150; + } #endif static CSprite2d *splash = nil; if (splash == nil) splash = LoadSplash("OUTRO"); - m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(MENU_X(28.0f), MENU_Y(8.0f), MENU_X(157.0f), MENU_Y(138.0f)), CRGBA(255, 255, 255, -(m_nMenuFadeAlpha + 1))); + m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(MENU_X(28.0f), MENU_Y(8.0f), MENU_X(157.0f), MENU_Y(138.0f)), CRGBA(255, 255, 255, 255 - alpha)); // Or we can see menu background from sides #ifdef ASPECT_RATIO_SCALE - CSprite2d::DrawRect(CRect(0, 0, MENU_X_LEFT_ALIGNED(0.f), SCREEN_HEIGHT), CRGBA(0, 0, 0, m_nMenuFadeAlpha)); - CSprite2d::DrawRect(CRect(MENU_X_RIGHT_ALIGNED(0.f), 0, SCREEN_WIDTH, SCREEN_HEIGHT), CRGBA(0, 0, 0, m_nMenuFadeAlpha)); + CSprite2d::DrawRect(CRect(0, 0, MENU_X_LEFT_ALIGNED(0.f), SCREEN_HEIGHT), CRGBA(0, 0, 0, alpha)); + CSprite2d::DrawRect(CRect(MENU_X_RIGHT_ALIGNED(0.f), 0, SCREEN_WIDTH, SCREEN_HEIGHT), CRGBA(0, 0, 0, alpha)); #endif - splash->Draw(CRect(MENU_X_LEFT_ALIGNED(0.f), 0, MENU_X_RIGHT_ALIGNED(0.f), SCREEN_HEIGHT), CRGBA(255, 255, 255, m_nMenuFadeAlpha)); - if (m_nMenuFadeAlpha == 255 && exitSignalTimer == 150) + splash->Draw(CRect(MENU_X_LEFT_ALIGNED(0.f), 0, MENU_X_RIGHT_ALIGNED(0.f), SCREEN_HEIGHT), CRGBA(255, 255, 255, alpha)); + if (alpha == 255 && exitSignalTimer == 150) RsEventHandler(rsQUITAPP, nil); m_bShowMouse = false; diff --git a/src/core/main.cpp b/src/core/main.cpp index 9a0308dd..a08a9535 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -1065,8 +1065,13 @@ DisplayGameDebugText() #endif FrameSamples++; +#ifdef FIX_HIGH_FPS_BUGS_ON_FRONTEND + FramesPerSecondCounter += frameTime / 1000.f; // convert to seconds + FramesPerSecond = FrameSamples / FramesPerSecondCounter; +#else FramesPerSecondCounter += 1000.0f / (CTimer::GetTimeStepNonClippedInSeconds() * 1000.0f); FramesPerSecond = FramesPerSecondCounter / FrameSamples; +#endif if ( FrameSamples > 30 ) { diff --git a/src/peds/Ped.h b/src/peds/Ped.h index 8b091d15..8b48b1e0 100644 --- a/src/peds/Ped.h +++ b/src/peds/Ped.h @@ -639,7 +639,7 @@ public: uint32 m_threatFlags; uint32 m_threatCheckTimer; uint32 m_threatCheckInterval; - uint32 m_delayedSoundID; + int32 m_delayedSoundID; uint32 m_delayedSoundTimer; uint32 m_lastSoundStart; uint32 m_soundStart; diff --git a/src/skel/crossplatform.cpp b/src/skel/crossplatform.cpp index 37c94cb4..68df6704 100644 --- a/src/skel/crossplatform.cpp +++ b/src/skel/crossplatform.cpp @@ -32,8 +32,8 @@ HANDLE FindFirstFile(const char* pathname, WIN32_FIND_DATA* firstfile) { char *folder = strtok(pathCopy, "*"); char *extension = strtok(NULL, "*"); - // because strtok doesn't return NULL for last delimiter - if (extension - folder == strlen(pathname)) + // because I remember like strtok might not return NULL for last delimiter + if (extension && extension - folder == strlen(pathname)) extension = nil; // Case-sensitivity and backslashes... @@ -187,7 +187,7 @@ char* casepath(char const* path, bool checkPathFirst) rl = 1; } - bool cantProceed = false; // just convert slashes in what's left in string, not case sensitivity + bool cantProceed = false; // just convert slashes in what's left in string, don't correct case of letters(because we can't) bool mayBeTrailingSlash = false; char* c; while (c = strsep(&p, "/\\")) @@ -251,7 +251,7 @@ char* casepath(char const* path, bool checkPathFirst) } if (rl > l + 2) { - printf("\n\ncasepath: Corrected path length is longer then original+2:\n\tOriginal: %s (%d chars)\n\tCorrected: %s (%d chars)\n\n", path, l, out, rl); + printf("\n\ncasepath: Corrected path length is longer then original+2:\n\tOriginal: %s (%zu chars)\n\tCorrected: %s (%zu chars)\n\n", path, l, out, rl); } return out; } From 2fc6b542bcf6b8cbfc4a62d66024dbb5b8a6a830 Mon Sep 17 00:00:00 2001 From: withmorten Date: Fri, 29 Jan 2021 01:18:32 +0100 Subject: [PATCH 016/113] waterlevel fix --- src/render/WaterLevel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp index 08fd5e6e..dc589970 100644 --- a/src/render/WaterLevel.cpp +++ b/src/render/WaterLevel.cpp @@ -716,7 +716,7 @@ CWaterLevel::GetWaterLevel(float fX, float fY, float fZ, float *pfOutLevel, bool uint8 nBlock = aWaterFineBlockList[x][y]; - if ( nBlock == 0x80 ) + if ( nBlock == NO_WATER ) return false; ASSERT( pfOutLevel != nil ); @@ -758,7 +758,7 @@ CWaterLevel::GetWaterLevelNoWaves(float fX, float fY, float fZ, float *pfOutLeve uint8 nBlock = aWaterFineBlockList[x][y]; - if ( nBlock == 0x80 ) + if ( nBlock == NO_WATER ) return false; ASSERT( pfOutLevel != nil ); From 8482180706815434e6a56267edfedbf2bbc05851 Mon Sep 17 00:00:00 2001 From: withmorten Date: Fri, 29 Jan 2021 01:20:20 +0100 Subject: [PATCH 017/113] waterlevel fix fix --- src/render/WaterLevel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp index dc589970..9b2dd816 100644 --- a/src/render/WaterLevel.cpp +++ b/src/render/WaterLevel.cpp @@ -714,7 +714,7 @@ CWaterLevel::GetWaterLevel(float fX, float fY, float fZ, float *pfOutLevel, bool if ( y < 0 || y >= MAX_SMALL_SECTORS ) return false; #endif - uint8 nBlock = aWaterFineBlockList[x][y]; + int8 nBlock = aWaterFineBlockList[x][y]; if ( nBlock == NO_WATER ) return false; @@ -756,7 +756,7 @@ CWaterLevel::GetWaterLevelNoWaves(float fX, float fY, float fZ, float *pfOutLeve if ( y < 0 || y >= MAX_SMALL_SECTORS ) return false; #endif - uint8 nBlock = aWaterFineBlockList[x][y]; + int8 nBlock = aWaterFineBlockList[x][y]; if ( nBlock == NO_WATER ) return false; From 595a000f6a72a0bf376f5c019a76bcec9dc98c2f Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 29 Jan 2021 13:43:50 +0100 Subject: [PATCH 018/113] fix shutdown --- src/core/Game.cpp | 4 ++-- src/render/WaterLevel.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/Game.cpp b/src/core/Game.cpp index 83d30bb4..ed9d67f4 100644 --- a/src/core/Game.cpp +++ b/src/core/Game.cpp @@ -591,7 +591,6 @@ bool CGame::ShutDown(void) gPhoneInfo.Shutdown(); CWeapon::ShutdownWeapons(); CPedType::Shutdown(); - CMBlur::MotionBlurClose(); for (int32 i = 0; i < NUMPLAYERS; i++) { @@ -617,7 +616,7 @@ bool CGame::ShutDown(void) CStreaming::Shutdown(); CTxdStore::GameShutdown(); CCollision::Shutdown(); - CWaterLevel::DestroyWavyAtomic(); + CWaterLevel::Shutdown(); CRubbish::Shutdown(); CClouds::Shutdown(); CShadows::Shutdown(); @@ -626,6 +625,7 @@ bool CGame::ShutDown(void) CWeaponEffects::Shutdown(); CParticle::Shutdown(); CPools::ShutDown(); + CHud::ReInitialise(); CTxdStore::RemoveTxdSlot(gameTxdSlot); CMBlur::MotionBlurClose(); CdStreamRemoveImages(); diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp index 9b2dd816..d67b9d42 100644 --- a/src/render/WaterLevel.cpp +++ b/src/render/WaterLevel.cpp @@ -318,6 +318,7 @@ CWaterLevel::Shutdown() _DELETE_TEXTURE(gpWaterTex); _DELETE_TEXTURE(gpWaterEnvTex); + _DELETE_TEXTURE(gpWaterWakeTex); _DELETE_TEXTURE(gpWaterEnvBaseTex); #undef _DELETE_TEXTURE From 982b024c5c7564251358293e160bc674e555d9cd Mon Sep 17 00:00:00 2001 From: erorcun Date: Fri, 29 Jan 2021 16:25:32 +0300 Subject: [PATCH 019/113] CdStreamPosix fixes --- src/core/CdStreamPosix.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/core/CdStreamPosix.cpp b/src/core/CdStreamPosix.cpp index 8a27665a..e18280e5 100644 --- a/src/core/CdStreamPosix.cpp +++ b/src/core/CdStreamPosix.cpp @@ -76,7 +76,7 @@ CdStreamInitThread(void) gChannelRequestQ.tail = 0; gChannelRequestQ.size = gNumChannels + 1; ASSERT(gChannelRequestQ.items != nil ); - gCdStreamSema = sem_open("/semaphore_cd_stream", O_CREAT, 0644, 1); + gCdStreamSema = sem_open("/semaphore_cd_stream", O_CREAT, 0644, 0); if (gCdStreamSema == SEM_FAILED) { @@ -91,7 +91,7 @@ CdStreamInitThread(void) for ( int32 i = 0; i < gNumChannels; i++ ) { sprintf(semName,"/semaphore_done%d",i); - gpReadInfo[i].pDoneSemaphore = sem_open(semName, O_CREAT, 0644, 1); + gpReadInfo[i].pDoneSemaphore = sem_open(semName, O_CREAT, 0644, 0); if (gpReadInfo[i].pDoneSemaphore == SEM_FAILED) { @@ -102,7 +102,7 @@ CdStreamInitThread(void) #ifdef ONE_THREAD_PER_CHANNEL sprintf(semName,"/semaphore_start%d",i); - gpReadInfo[i].pStartSemaphore = sem_open(semName, O_CREAT, 0644, 1); + gpReadInfo[i].pStartSemaphore = sem_open(semName, O_CREAT, 0644, 0); if (gpReadInfo[i].pStartSemaphore == SEM_FAILED) { @@ -171,6 +171,7 @@ CdStreamInit(int32 numChannels) gNumImages = 0; gNumChannels = numChannels; + ASSERT( gNumChannels != 0 ); gpReadInfo = (CdReadInfo *)calloc(numChannels, sizeof(CdReadInfo)); ASSERT( gpReadInfo != nil ); @@ -398,7 +399,12 @@ void *CdStreamThread(void *param) #ifndef ONE_THREAD_PER_CHANNEL while (gCdStreamThreadStatus != 2) { sem_wait(gCdStreamSema); + int32 channel = GetFirstInQueue(&gChannelRequestQ); + + // spurious wakeup + if (channel == -1) + continue; #else int channel = *((int*)param); while (gpReadInfo[channel].nThreadStatus != 2){ From 934aa92a9b9c2bfd2bf4af8316bf12fb83416902 Mon Sep 17 00:00:00 2001 From: withmorten Date: Fri, 29 Jan 2021 16:41:34 +0100 Subject: [PATCH 020/113] add NewRenderer ini read/write, fix backfaceculling read --- src/core/re3.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/re3.cpp b/src/core/re3.cpp index d0006fd3..83ef7c88 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -406,6 +406,10 @@ bool LoadINISettings() ReadIniIfExists("CustomPipesValues", "LightmapMult", &CustomPipes::LightmapMult); ReadIniIfExists("CustomPipesValues", "GlossMult", &CustomPipes::GlossMult); #endif + ReadIniIfExists("Rendering", "BackfaceCulling", &gBackfaceCulling); +#ifdef NEW_RENDERER + ReadIniIfExists("Rendering", "NewRender", &gbNewRenderer); +#endif #ifdef PROPER_SCALING ReadIniIfExists("Draw", "ProperScaling", &CDraw::ms_bProperScaling); @@ -495,6 +499,9 @@ void SaveINISettings() StoreIni("CustomPipesValues", "GlossMult", CustomPipes::GlossMult); #endif StoreIni("Rendering", "BackfaceCulling", gBackfaceCulling); +#ifdef NEW_RENDERER + StoreIni("Rendering", "NewRenderer", gbNewRenderer); +#endif #ifdef PROPER_SCALING StoreIni("Draw", "ProperScaling", CDraw::ms_bProperScaling); From 7db28f9f7f46431fcad9d977275f540e3cbc5a6f Mon Sep 17 00:00:00 2001 From: withmorten Date: Fri, 29 Jan 2021 16:43:17 +0100 Subject: [PATCH 021/113] fix NewRender typo --- src/core/re3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 83ef7c88..87aca59c 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -408,7 +408,7 @@ bool LoadINISettings() #endif ReadIniIfExists("Rendering", "BackfaceCulling", &gBackfaceCulling); #ifdef NEW_RENDERER - ReadIniIfExists("Rendering", "NewRender", &gbNewRenderer); + ReadIniIfExists("Rendering", "NewRenderer", &gbNewRenderer); #endif #ifdef PROPER_SCALING From c4328afce7e2a0b48b9d0d2b225496e29fff1c0a Mon Sep 17 00:00:00 2001 From: erorcun Date: Fri, 29 Jan 2021 03:44:12 +0300 Subject: [PATCH 022/113] Even more fixes & shorten quit screen --- src/control/Garages.cpp | 8 ++++++++ src/core/Frontend.cpp | 2 +- src/core/Radar.cpp | 2 +- src/peds/Ped.cpp | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp index e3b5aa8c..333f3a6f 100644 --- a/src/control/Garages.cpp +++ b/src/control/Garages.cpp @@ -1997,7 +1997,11 @@ float CGarages::FindDoorHeightForMI(int32 mi) void CGarage::TidyUpGarage() { uint32 i = CPools::GetVehiclePool()->GetSize(); +#ifdef FIX_BUGS while (i--) { +#else + while (--i) { +#endif CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); if (pVehicle && (pVehicle->IsCar() || pVehicle->IsBike())) { if (IsPointInsideGarage(pVehicle->GetPosition())) { @@ -2013,7 +2017,11 @@ void CGarage::TidyUpGarage() void CGarage::TidyUpGarageClose() { uint32 i = CPools::GetVehiclePool()->GetSize(); +#ifdef FIX_BUGS while (i--) { +#else + while (--i) { +#endif CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); if (!pVehicle) continue; diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index f38efb66..16a70697 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -5582,7 +5582,7 @@ CMenuManager::DrawQuitGameScreen(void) } #else static PauseModeTime firstTick = CTimer::GetTimeInMillisecondsPauseMode(); - if (alpha == 255 && CTimer::GetTimeInMillisecondsPauseMode() - firstTick > 1000) { + if (alpha == 255 && CTimer::GetTimeInMillisecondsPauseMode() - firstTick > 750) { exitSignalTimer = 150; } #endif diff --git a/src/core/Radar.cpp b/src/core/Radar.cpp index 8cd86344..4bb9c966 100644 --- a/src/core/Radar.cpp +++ b/src/core/Radar.cpp @@ -824,7 +824,7 @@ int32 CRadar::GetNewUniqueBlipIndex(int32 i) uint32 CRadar::GetRadarTraceColour(uint32 color, bool bright) { - int32 c; + uint32 c; switch (color) { case RADAR_TRACE_RED: if (bright) diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 6a3df18b..cec88580 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -1609,7 +1609,7 @@ CPed::ProcessBuoyancy(void) color.r = (0.5f * CTimeCycle::GetDirectionalRed() + CTimeCycle::GetAmbientRed()) * 127.5f; color.g = (0.5f * CTimeCycle::GetDirectionalBlue() + CTimeCycle::GetAmbientBlue()) * 127.5f; color.b = (0.5f * CTimeCycle::GetDirectionalGreen() + CTimeCycle::GetAmbientGreen()) * 127.5f; - color.a = (CGeneral::GetRandomNumber() % 256 * 48.0f) + 48; + color.a = CGeneral::GetRandomNumberInRange(48.0f, 96.0f); bIsInWater = true; ApplyMoveForce(buoyancyImpulse); if (!DyingOrDead()) { From 990637bf52142eb09fb9c38d9c9a5c8abd98050b Mon Sep 17 00:00:00 2001 From: withmorten Date: Fri, 29 Jan 2021 17:57:51 +0100 Subject: [PATCH 023/113] waterlevel: use macro for 400.0f --- src/render/WaterLevel.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp index d67b9d42..1ba615c0 100644 --- a/src/render/WaterLevel.cpp +++ b/src/render/WaterLevel.cpp @@ -1077,7 +1077,7 @@ CWaterLevel::RenderWater() { for ( int32 y = 0; y < 5; y++ ) { - float fX = WATER_SIGN_X(float(x) * EXTRAHUGE_SECTOR_SIZE) - 1280.0f - 400.0f; + float fX = WATER_SIGN_X(float(x) * EXTRAHUGE_SECTOR_SIZE) - 1280.0f - WATER_X_OFFSET; float fY = WATER_SIGN_Y(float(y) * EXTRAHUGE_SECTOR_SIZE) - 1280.0f; if ( !bUseCamStartY ) @@ -1463,7 +1463,7 @@ CWaterLevel::RenderTransparentWater(void) int32 nBlock; - int32 BlockX = WATER_TO_SMALL_SECTOR_X(fCamX + 400.0f) + 1; + int32 BlockX = WATER_TO_SMALL_SECTOR_X(fCamX + WATER_X_OFFSET) + 1; int32 BlockY = WATER_TO_SMALL_SECTOR_Y(fCamY) + 1; if (_IsColideWithBlock(BlockX, BlockY, nBlock)) @@ -1473,7 +1473,7 @@ CWaterLevel::RenderTransparentWater(void) float fMaskX = Floor(fCamX / 2.0f) * 2.0f; float fMaskY = Floor(fCamY / 2.0f) * 2.0f; float fWaterZ = CWaterLevel::ms_aWaterZs[nBlock]; - float fSectorX = WATER_FROM_SMALL_SECTOR_X(BlockX) - 400.0f; + float fSectorX = WATER_FROM_SMALL_SECTOR_X(BlockX) - WATER_X_OFFSET; float fSectorY = WATER_FROM_SMALL_SECTOR_Y(BlockY); RenderWavyMask(fMaskX, fMaskY, fWaterZ, From dbf5c06144d6ccc74fce696ea20571939be3ad4a Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 30 Jan 2021 14:53:51 +0300 Subject: [PATCH 024/113] fixed bike bomb --- src/core/World.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/World.cpp b/src/core/World.cpp index ef1cc948..40c060c0 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -2239,8 +2239,12 @@ CWorld::UseDetonator(CEntity *pEntity) { int32 i = CPools::GetVehiclePool()->GetSize(); while(--i >= 0) { +#ifdef FIX_BUGS + CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); +#else CAutomobile *pVehicle = (CAutomobile *)CPools::GetVehiclePool()->GetSlot(i); - if(pVehicle && !pVehicle->m_vehType && pVehicle->m_bombType == CARBOMB_REMOTE && +#endif + if(pVehicle && pVehicle->m_bombType == CARBOMB_REMOTE && pVehicle->m_pBombRigger == pEntity) { pVehicle->m_bombType = CARBOMB_NONE; pVehicle->m_nBombTimer = 500; From 8b08098d4e9c19b6047fade5af2332674d32993c Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 30 Jan 2021 20:26:10 +0300 Subject: [PATCH 025/113] fix --- src/control/Garages.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp index 333f3a6f..1e606fb1 100644 --- a/src/control/Garages.cpp +++ b/src/control/Garages.cpp @@ -1285,7 +1285,7 @@ bool CGarage::IsAnyOtherCarTouchingGarage(CVehicle * pException) uint32 i = CPools::GetVehiclePool()->GetSize(); while (i--) { CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i); - if (!pVehicle || pVehicle == pException) + if (!pVehicle || pVehicle == pException || pVehicle->GetStatus() == STATUS_WRECKED) continue; if (!IsEntityTouching3D(pVehicle)) continue; From c193ade58b8956d3a72ef91507c8ca23a043828d Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sat, 30 Jan 2021 20:46:37 +0200 Subject: [PATCH 026/113] Font fixes --- src/render/Font.cpp | 13 ++++++++----- src/render/Hud.cpp | 4 +++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/render/Font.cpp b/src/render/Font.cpp index de1ee8b4..0f5930ee 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -406,16 +406,19 @@ CFont::DrawButton(float x, float y) if (PS2Symbol != BUTTON_NONE) { CRect rect; rect.left = x; - rect.top = Details.scaleY + Details.scaleY + y; - rect.right = Details.scaleY * 17.0f + x; - rect.bottom = Details.scaleY * 19.0f + y; + rect.top = RenderState.scaleY + RenderState.scaleY + y; + rect.right = RenderState.scaleY * 17.0f + x; + rect.bottom = RenderState.scaleY * 19.0f + y; int vertexAlphaState; void *raster; RwRenderStateGet(rwRENDERSTATEVERTEXALPHAENABLE, &vertexAlphaState); RwRenderStateGet(rwRENDERSTATETEXTURERASTER, &raster); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)TRUE); - ButtonSprite[PS2Symbol].Draw(rect, CRGBA(255, 255, 255, Details.color.a)); + if (RenderState.bIsShadow) + ButtonSprite[PS2Symbol].Draw(rect, RenderState.color); + else + ButtonSprite[PS2Symbol].Draw(rect, CRGBA(255, 255, 255, RenderState.color.a)); RwRenderStateSet(rwRENDERSTATETEXTURERASTER, raster); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)vertexAlphaState); } @@ -585,7 +588,7 @@ CFont::RenderFontBuffer() #ifdef BUTTON_ICONS if(PS2Symbol != BUTTON_NONE) { DrawButton(textPosX, textPosY); - textPosX += Details.scaleY * 17.0f; + textPosX += RenderState.scaleY * 17.0f; PS2Symbol = BUTTON_NONE; } #endif diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index a0f3c3ee..e0419a65 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -1173,8 +1173,10 @@ void CHud::Draw() CFont::SetCentreOn(); CFont::SetPropOn(); #ifdef CUTSCENE_BORDERS_SWITCH - if (!FrontEndMenuManager.m_PrefsCutsceneBorders) + if (!FrontEndMenuManager.m_PrefsCutsceneBorders) { + CFont::SetDropColor(CRGBA(0, 0, 0, 255)); CFont::SetDropShadowPosition(2); + } else #endif CFont::SetDropShadowPosition(0); From 5dfe396af3d2c3e2c7c0d01ba96f3c15f01cf888 Mon Sep 17 00:00:00 2001 From: withmorten Date: Sat, 30 Jan 2021 20:13:25 +0100 Subject: [PATCH 027/113] use macro for waterlevel z offset --- src/render/WaterLevel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp index 1ba615c0..3d33dbf6 100644 --- a/src/render/WaterLevel.cpp +++ b/src/render/WaterLevel.cpp @@ -73,7 +73,7 @@ RwRaster *gpWaterEnvBaseRaster; RwRaster *gpWaterWakeRaster; bool _bSeaLife; -float _fWaterZOffset = 0.5f; +float _fWaterZOffset = WATER_Z_OFFSET; #ifdef PC_WATER float fEnvScale = 0.25f; From 2420325c0220fb0b3fb465a007140652f8031618 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sun, 31 Jan 2021 01:45:07 +0300 Subject: [PATCH 028/113] fix --- src/control/Garages.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp index 1e606fb1..7cf58d03 100644 --- a/src/control/Garages.cpp +++ b/src/control/Garages.cpp @@ -2234,6 +2234,8 @@ void CGarages::SetAllDoorsBackToOriginalHeight() default: aGarages[i].RefreshDoorPointers(true); if (aGarages[i].m_pDoor1) { + aGarages[i].m_pDoor1->GetMatrix().GetPosition().x = aGarages[i].m_fDoor1X; + aGarages[i].m_pDoor1->GetMatrix().GetPosition().y = aGarages[i].m_fDoor1Y; aGarages[i].m_pDoor1->GetMatrix().GetPosition().z = aGarages[i].m_fDoor1Z; if (aGarages[i].m_pDoor1->IsObject()) ((CObject*)aGarages[i].m_pDoor1)->m_objectMatrix.GetPosition().z = aGarages[i].m_fDoor1Z; @@ -2243,6 +2245,8 @@ void CGarages::SetAllDoorsBackToOriginalHeight() aGarages[i].m_pDoor1->UpdateRwFrame(); } if (aGarages[i].m_pDoor2) { + aGarages[i].m_pDoor2->GetMatrix().GetPosition().x = aGarages[i].m_fDoor2X; + aGarages[i].m_pDoor2->GetMatrix().GetPosition().y = aGarages[i].m_fDoor2Y; aGarages[i].m_pDoor2->GetMatrix().GetPosition().z = aGarages[i].m_fDoor2Z; if (aGarages[i].m_pDoor2->IsObject()) ((CObject*)aGarages[i].m_pDoor2)->m_objectMatrix.GetPosition().z = aGarages[i].m_fDoor2Z; From 2e37001881eab8932dafcfd345fd9bb641bb70f4 Mon Sep 17 00:00:00 2001 From: withmorten Date: Sun, 31 Jan 2021 01:19:25 +0100 Subject: [PATCH 029/113] fix UB and new renderer crashes --- src/render/Renderer.cpp | 4 ++++ src/rw/VisibilityPlugins.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 8c4714fb..dfbc02d7 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -1394,6 +1394,10 @@ CRenderer::ScanSectorPoly(RwV2d *poly, int32 numVertices, void (*scanfunc)(CPtrL void CRenderer::InsertEntityIntoList(CEntity *ent) { +#ifdef FIX_BUGS + if (!ent->m_rwObject) return; +#endif + #ifdef NEW_RENDERER // TODO: there are more flags being checked here if(gbNewRenderer && (ent->IsVehicle() || ent->IsPed())) diff --git a/src/rw/VisibilityPlugins.cpp b/src/rw/VisibilityPlugins.cpp index bdde5e33..3a303194 100644 --- a/src/rw/VisibilityPlugins.cpp +++ b/src/rw/VisibilityPlugins.cpp @@ -96,6 +96,10 @@ CVisibilityPlugins::InitAlphaEntityList(void) bool CVisibilityPlugins::InsertEntityIntoSortedList(CEntity *e, float dist) { +#ifdef FIX_BUGS + if (!e->m_rwObject) return true; +#endif + AlphaObjectInfo item; item.entity = e; item.sort = dist; From 264d7d98d72dd89f8259fbedad56c42b5bdefd55 Mon Sep 17 00:00:00 2001 From: shfil Date: Sun, 31 Jan 2021 15:01:46 +0100 Subject: [PATCH 030/113] fix realloc --- src/core/re3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 87aca59c..4b828171 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -713,7 +713,7 @@ void CTweakVars::Add(CTweakVar *var) TweakVarsListSize = 0; } if(TweakVarsListSize > 63) - TweakVarsList = (CTweakVar**) realloc(TweakVarsList, (TweakVarsListSize + 1) * sizeof(*var)); + TweakVarsList = (CTweakVar**) realloc(TweakVarsList, (TweakVarsListSize + 1) * sizeof(CTweakVar*)); TweakVarsList[TweakVarsListSize++] = var; // TweakVarsList.push_back(var); From 3e0dbf42d49a1ce3f7a5aef441558376171c3ac9 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sun, 31 Jan 2021 23:46:45 +0200 Subject: [PATCH 031/113] Add radio off text --- gamefiles/TEXT/american.gxt | Bin 423418 -> 423450 bytes utils/gxt/american.txt | 3 +++ 2 files changed, 3 insertions(+) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index 767454de46933b66db4f95ed2a701ff08b148880..1721705d03c59c549e692d13d43d2b048c48505c 100644 GIT binary patch delta 1022 zcmezMT5{GK$q6#`OKvhTI0grM`WZ4Xthfth8!<54cmQP^Gca6v24$NtFj%~YvP~Hn z*8F5*aB}qX_A+E(IPw?DHez5X;9!P`8#6F?NJH5s3=9j@KHZryD!p^(+kao_--g{tOHZYqqm6c)Nl<%+PX)g~8j?**iESgdyTK z3xkhic%*BPA;XjVFt!oH9A;LixG@8Z3XE;SFvpOU!PnE#*E8Ob;fOsegRd_G7^pb0 zGWdr%`UH8pGyHI2WeD)_^f6>$sAu5tg>XPVxDdk15a1aV<;cLmP!P|`5a1sK3TXzH z90(hvMxhSE2KmyU1HuM{^pUx&3;{v@;85AI7QzOr-wk1d)N>qSWe9R~b`54=VAyhn zl_AKv-ow?$(~x1$Ef6Qb$IsP}A>=NI4N_*v!192VA;{m^8MtFkMs02dT&Y>X;Z*&qNoNz}&h9B85 zwh_aHd>Gr9A*YCqA;jA?a?R$0%>5eN5{XOB{R|lxI_^T*Mhpx)9zfZ~3=CVILD?n@3=;35Y*Pk? zo}Ww%PL6)wUWN<|Oa4OHMhpxA9Lx}LV+IBdX(-!-fuTVS#18TY+4aW>%&zzMGh$%i z@CI}I{frqH0wSSo69$Hg1Ss2-fk7mXnZe1^+trYPfx)K~!Zu=HV3<<_VH-0rFuZ7E zW^nS2hzF@T(Z|f-=*zRubBd32Z4kcOqSGxIRTDAh72E8F*7*( z2RJ(hF)+xi1+hc@LJS!gWHvzAMhpxW_A)a#hdMced=PRH$~IzP$hi(>8#6GJJb|)J z7#JSBV`gyk^mFuaWnehN$im>}8RQxgn^(+kao_--g{tOHZJ=<9ryj{T_W=Ofj!r<-c>>V5u!eDWm zg~7)$JkmADkm1OE7~6=UhM5&AZp`pR8OAnYs4-+^@bz@`^^7-USYpr0;Ool(1}sjj z4E|w`K0%)D3^!a@83H^!eGC~G>KR`6KsX>DYzSdx2=I)Ga%5m&2#9B82=EUAg*1ao z4ulO-!%zodgM2B_0b!dkFfc5c%gPWClu>XJrWTclHJ)sG3I*HptKupCN3J zp*#MvG6cH@xr5ZakYxk2L267iAZ(DD0z)>25XT5lkQ$ai2-`U{gyD=%B7_s}XvlCQ z8^$(b*pLrn8#DM6u`z^ryGAb9e2}?cV{?p-gb$-cb7@6;X$9l<(h4T&#P%gOncA1! QWNu$_lV$soo2+GX00S)T#sB~S diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index fcb3a80f..a91a3274 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -14397,6 +14397,9 @@ INVERT PAD VERTICALLY [FEM_NON] NONE +[FEA_FMN] +RADIO OFF + { end of file } [DUMMY] THIS LABEL NEEDS TO BE HERE !!! From 902e539c0d25ec418cd36c735079561f378c712c Mon Sep 17 00:00:00 2001 From: erorcun Date: Sat, 30 Jan 2021 14:52:48 +0300 Subject: [PATCH 032/113] Overhaul MusicManager - fix radio bugs, scroll to prev station, radio off text --- src/audio/AudioLogic.cpp | 12 +- src/audio/MusicManager.cpp | 530 ++++++++++++++++++-------------- src/audio/MusicManager.h | 24 +- src/audio/audio_enums.h | 2 +- src/audio/soundlist.h | 14 +- src/core/Camera.cpp | 2 +- src/core/ControllerConfig.cpp | 45 +++ src/core/ControllerConfig.h | 4 + src/core/config.h | 6 +- src/render/Hud.cpp | 2 +- src/save/GenericGameStorage.cpp | 6 +- src/save/GenericGameStorage.h | 2 +- src/text/Text.cpp | 2 +- src/vehicles/Vehicle.cpp | 4 +- src/vehicles/Vehicle.h | 2 +- 15 files changed, 393 insertions(+), 264 deletions(-) diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index ce543f33..c7b26711 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -8846,7 +8846,7 @@ cAudioManager::ProcessFrontEnd() break; case SOUND_PICKUP_BONUS: case SOUND_FRONTEND_MENU_STARTING: - case SOUND_HUD_SOUND: + case SOUND_HUD: stereo = true; m_sQueueSample.m_nSampleIndex = SFX_INFO_LEFT; center = true; @@ -8882,11 +8882,11 @@ cAudioManager::ProcessFrontEnd() case SOUND_CLOCK_TICK: m_sQueueSample.m_nSampleIndex = SFX_TIMER; break; - case SOUND_FRONTEND_NO_RADIO: - case SOUND_FRONTEND_RADIO_CHANGE: + case SOUND_FRONTEND_RADIO_TURN_OFF: + case SOUND_FRONTEND_RADIO_TURN_ON: m_sQueueSample.m_nSampleIndex = SFX_RADIO_CLICK; break; - case SOUND_FRONTEND_RADIO_CHANGE_2: + case SOUND_FRONTEND_HURRICANE: m_sQueueSample.m_nSampleIndex = SFX_HURRICANE_MA; break; case SOUND_BULLETTRACE_1: @@ -8937,9 +8937,9 @@ cAudioManager::ProcessFrontEnd() sample = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]; - if (sample == SOUND_FRONTEND_NO_RADIO) + if (sample == SOUND_FRONTEND_RADIO_TURN_OFF) m_sQueueSample.m_nFrequency = 28509; - else if (sample == SOUND_FRONTEND_RADIO_CHANGE) + else if (sample == SOUND_FRONTEND_RADIO_TURN_ON) m_sQueueSample.m_nFrequency = 32000; else if (sample == SOUND_BULLETTRACE_1 || sample == SOUND_BULLETTRACE_2) { m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); diff --git a/src/audio/MusicManager.cpp b/src/audio/MusicManager.cpp index 374de081..d229ef8d 100644 --- a/src/audio/MusicManager.cpp +++ b/src/audio/MusicManager.cpp @@ -21,6 +21,10 @@ #include "DMAudio.h" #include "GenericGameStorage.h" +#if !defined FIX_BUGS && (defined RADIO_SCROLL_TO_PREV_STATION || defined RADIO_OFF_TEXT) +static_assert(false, "R*'s radio implementation is quite buggy, RADIO_SCROLL_TO_PREV_STATION and RADIO_OFF_TEXT won't work without FIX_BUGS"); +#endif + cMusicManager MusicManager; int32 gNumRetunePresses; int32 gRetuneCounter; @@ -52,7 +56,7 @@ cMusicManager::cMusicManager() m_nPlayingTrack = NO_TRACK; m_nUpcomingMusicMode = MUSICMODE_DISABLED; m_nMusicMode = MUSICMODE_DISABLED; - field_2 = false; + m_bSetNextStation = false; for (int i = 0; i < NUM_RADIOS; i++) aListenTimeArray[i] = 0.0f; @@ -71,27 +75,27 @@ cMusicManager::ResetMusicAfterReload() float afRadioTime[NUM_RADIOS]; m_bRadioSetByScript = false; - m_nRadioStation = WILDSTYLE; + m_nRadioStationScript = WILDSTYLE; m_nRadioPosition = -1; m_nAnnouncement = NO_TRACK; m_bAnnouncementInProgress = false; - field_2 = false; + m_bSetNextStation = false; RadioStaticTimer = 0; gNumRetunePresses = 0; gRetuneCounter = 0; m_nFrontendTrack = NO_TRACK; m_nPlayingTrack = NO_TRACK; - field_398E = false; - field_398F = false; - m_nStreamedTrack = NO_TRACK; - field_3994 = false; - field_3995 = false; - field_3996 = false; - field_3997 = false; + m_FrontendLoopFlag = false; + m_bTrackChangeStarted = false; + m_nNextTrack = NO_TRACK; + m_nNextLoopFlag = false; + m_bVerifyNextTrackStartedToPlay = false; + m_bGameplayAllowsRadio = false; + m_bRadioStreamReady = false; nFramesSinceCutsceneEnded = -1; - field_3999 = false; - field_399A = false; - field_399C = false; + m_bUserResumedGame = false; + m_bMusicModeChangeStarted = false; + m_bEarlyFrontendTrack = false; m_nVolumeLatency = 0; m_nCurrentVolume = 0; m_nMaxVolume = 0; @@ -108,7 +112,7 @@ cMusicManager::ResetMusicAfterReload() for (int i = 0; i < NUM_RADIOS; i++) { aListenTimeArray[i] = afRadioTime[i]; - uint32 trackPos = GetSavedRadioStationPosition(i); + int32 trackPos = GetSavedRadioStationPosition(i); if (trackPos != -1) { if (trackPos > m_aTracks[i].m_nLength) { debug("Radio Track %d saved position is %d, Length is only %d\n", i, trackPos, m_aTracks[i].m_nLength); @@ -179,7 +183,7 @@ cMusicManager::Initialise() m_bResetTimers = false; m_nResetTime = 0; m_bRadioSetByScript = false; - m_nRadioStation = WILDSTYLE; + m_nRadioStationScript = WILDSTYLE; m_nRadioPosition = -1; m_nRadioInCar = NO_TRACK; gRetuneCounter = 0; @@ -188,18 +192,18 @@ cMusicManager::Initialise() m_nPlayingTrack = NO_TRACK; m_nUpcomingMusicMode = MUSICMODE_DISABLED; m_nMusicMode = MUSICMODE_DISABLED; - field_398E = false; - field_398F = false; - m_nStreamedTrack = NO_TRACK; - field_3994 = false; - field_3995 = false; - field_3996 = false; - field_3997 = false; + m_FrontendLoopFlag = false; + m_bTrackChangeStarted = false; + m_nNextTrack = NO_TRACK; + m_nNextLoopFlag = false; + m_bVerifyNextTrackStartedToPlay = false; + m_bGameplayAllowsRadio = false; + m_bRadioStreamReady = false; nFramesSinceCutsceneEnded = -1; - field_3999 = false; - field_399A = false; + m_bUserResumedGame = false; + m_bMusicModeChangeStarted = false; m_nMusicModeToBeSet = MUSICMODE_DISABLED; - field_399C = false; + m_bEarlyFrontendTrack = false; m_nVolumeLatency = 0; m_nCurrentVolume = 0; m_nMaxVolume = 0; @@ -227,7 +231,7 @@ cMusicManager::SetRadioChannelByScript(uint32 station, int32 pos) station = STREAMED_SOUND_CITY_AMBIENT; if (station <= STREAMED_SOUND_RADIO_POLICE) { m_bRadioSetByScript = true; - m_nRadioStation = station; + m_nRadioStationScript = station; m_nRadioPosition = pos == -1 ? -1 : pos % m_aTracks[station].m_nLength; } } @@ -292,7 +296,7 @@ cMusicManager::SetRadioInCar(uint32 station) void cMusicManager::RecordRadioStats() { - if (m_nPlayingTrack < STREAMED_SOUND_CITY_AMBIENT) { + if (m_nPlayingTrack < NUM_RADIOS) { double time /*Rusty*/ = CTimer::GetTimeInMillisecondsPauseMode(); if (time > m_nLastTrackServiceTime) aListenTimeArray[m_nPlayingTrack] += time - m_nLastTrackServiceTime; @@ -321,11 +325,11 @@ cMusicManager::ChangeMusicMode(uint8 mode) while (SampleManager.IsStreamPlaying(0)) SampleManager.StopStreamedFile(0); m_nMusicMode = m_nUpcomingMusicMode; - field_399A = false; - field_398F = false; - m_nStreamedTrack = NO_TRACK; - field_3994 = false; - field_3995 = false; + m_bMusicModeChangeStarted = false; + m_bTrackChangeStarted = false; + m_nNextTrack = NO_TRACK; + m_nNextLoopFlag = false; + m_bVerifyNextTrackStartedToPlay = false; m_nPlayingTrack = NO_TRACK; m_nFrontendTrack = NO_TRACK; m_bAnnouncementInProgress = false; @@ -356,7 +360,7 @@ cMusicManager::Service() if (!m_bIsInitialised || m_bDisabled) return; - if (!field_399A) + if (!m_bMusicModeChangeStarted) m_nMusicModeToBeSet = m_nUpcomingMusicMode; if (m_nMusicModeToBeSet == m_nMusicMode) { if (!AudioManager.m_nUserPause || AudioManager.m_nPreviousUserPause || m_nMusicMode != MUSICMODE_FRONTEND) @@ -371,13 +375,13 @@ cMusicManager::Service() else m_nMusicMode = MUSICMODE_DISABLED; } else { - field_399A = true; - if (!field_3999 && !AudioManager.m_nUserPause && AudioManager.m_nPreviousUserPause) - field_3999 = true; + m_bMusicModeChangeStarted = true; + if (!m_bUserResumedGame && !AudioManager.m_nUserPause && AudioManager.m_nPreviousUserPause) + m_bUserResumedGame = true; if (AudioManager.m_FrameCounter % 4 == 0) { gNumRetunePresses = 0; gRetuneCounter = 0; - field_2 = false; + m_bSetNextStation = false; if (SampleManager.IsStreamPlaying(0)) { if (m_nPlayingTrack != NO_TRACK && !bRadioStatsRecorded) { @@ -390,14 +394,14 @@ cMusicManager::Service() } else { bRadioStatsRecorded = false; m_nMusicMode = m_nMusicModeToBeSet; - field_399A = false; - field_398F = false; - m_nStreamedTrack = NO_TRACK; - field_3994 = false; - field_3995 = false; + m_bMusicModeChangeStarted = false; + m_bTrackChangeStarted = false; + m_nNextTrack = NO_TRACK; + m_nNextLoopFlag = false; + m_bVerifyNextTrackStartedToPlay = false; m_nPlayingTrack = NO_TRACK; - if (field_399C) - field_399C = false; + if (m_bEarlyFrontendTrack) + m_bEarlyFrontendTrack = false; else m_nFrontendTrack = NO_TRACK; } @@ -417,19 +421,19 @@ cMusicManager::ServiceFrontEndMode() g_bAnnouncementReadPosAlready = false; m_nAnnouncement = NO_TRACK; m_bAnnouncementInProgress = false; - m_nStreamedTrack = NO_TRACK; + m_nNextTrack = NO_TRACK; m_nFrontendTrack = NO_TRACK; m_nPlayingTrack = NO_TRACK; } if (AudioManager.m_FrameCounter % 4 != 0) return; - if (!field_398F && !field_3995) { - m_nStreamedTrack = m_nFrontendTrack; - field_3994 = field_398E; + if (!m_bTrackChangeStarted && !m_bVerifyNextTrackStartedToPlay) { + m_nNextTrack = m_nFrontendTrack; + m_nNextLoopFlag = m_FrontendLoopFlag; } - if (m_nStreamedTrack == m_nPlayingTrack) { + if (m_nNextTrack == m_nPlayingTrack) { if (SampleManager.IsStreamPlaying(0)) { if (m_nVolumeLatency > 0) m_nVolumeLatency--; else { @@ -444,25 +448,25 @@ cMusicManager::ServiceFrontEndMode() ChangeMusicMode(MUSICMODE_GAME); } } else { - field_398F = true; - if (field_3995 || !SampleManager.IsStreamPlaying(0)) { + m_bTrackChangeStarted = true; + if (m_bVerifyNextTrackStartedToPlay || !SampleManager.IsStreamPlaying(0)) { bRadioStatsRecorded = false; - if (SampleManager.IsStreamPlaying(0) || m_nStreamedTrack == NO_TRACK) { - m_nPlayingTrack = m_nStreamedTrack; - field_3995 = false; - field_398F = false; + if (SampleManager.IsStreamPlaying(0) || m_nNextTrack == NO_TRACK) { + m_nPlayingTrack = m_nNextTrack; + m_bVerifyNextTrackStartedToPlay = false; + m_bTrackChangeStarted = false; } else { - uint32 trackStartPos = (m_nStreamedTrack > STREAMED_SOUND_RADIO_POLICE) ? 0 : GetTrackStartPos(m_nStreamedTrack); - if (m_nStreamedTrack != NO_TRACK) { - SampleManager.SetStreamedFileLoopFlag(field_3994, 0); - SampleManager.StartStreamedFile(m_nStreamedTrack, trackStartPos, 0); + uint32 trackStartPos = (m_nNextTrack > STREAMED_SOUND_RADIO_POLICE) ? 0 : GetTrackStartPos(m_nNextTrack); + if (m_nNextTrack != NO_TRACK) { + SampleManager.SetStreamedFileLoopFlag(m_nNextLoopFlag, 0); + SampleManager.StartStreamedFile(m_nNextTrack, trackStartPos, 0); m_nVolumeLatency = 3; m_nCurrentVolume = 0; m_nMaxVolume = 100; SampleManager.SetStreamedVolumeAndPan(m_nCurrentVolume, 63, 0, 0); - if (m_nStreamedTrack < STREAMED_SOUND_CITY_AMBIENT) + if (m_nNextTrack < STREAMED_SOUND_CITY_AMBIENT) m_nLastTrackServiceTime = CTimer::GetTimeInMillisecondsPauseMode(); - field_3995 = true; + m_bVerifyNextTrackStartedToPlay = true; } } } else { @@ -483,8 +487,8 @@ cMusicManager::ServiceGameMode() { CPed *ped = FindPlayerPed(); CVehicle *vehicle = AudioManager.FindVehicleOfPlayer(); - field_3997 = field_3996; - field_3996 = false; + m_bRadioStreamReady = m_bGameplayAllowsRadio; + m_bGameplayAllowsRadio = false; switch (CGame::currArea) { @@ -495,29 +499,28 @@ cMusicManager::ServiceGameMode() case AREA_BLOOD: case AREA_OVALRING: case AREA_MALIBU_CLUB: - field_3996 = false; + m_bGameplayAllowsRadio = false; break; default: if (SampleManager.GetMusicVolume()) { if (PlayerInCar()) - field_3996 = true; + m_bGameplayAllowsRadio = true; } else - field_3996 = false; + m_bGameplayAllowsRadio = false; break; } - if (!field_3996) { + if (!m_bGameplayAllowsRadio) { nFramesSinceCutsceneEnded = -1; gNumRetunePresses = 0; gRetuneCounter = 0; - field_2 = false; + m_bSetNextStation = false; } else if (ped) { - if(!ped->DyingOrDead()) { + if(!ped->DyingOrDead() && vehicle) { #ifdef GTA_PC if (SampleManager.IsMP3RadioChannelAvailable() && vehicle->m_nRadioStation < USERTRACK - && ControlsManager.GetIsKeyboardKeyJustDown(rsF9) - && vehicle) + && ControlsManager.GetIsKeyboardKeyJustDown(rsF9)) { if (!UsesPoliceRadio(vehicle) && !UsesTaxiRadio(vehicle)) { gNumRetunePresses = 0; @@ -532,7 +535,7 @@ cMusicManager::ServiceGameMode() } } #endif - if (CPad::GetPad(0)->ChangeStationJustDown() && vehicle) + if (CPad::GetPad(0)->ChangeStationJustDown()) { if (!UsesPoliceRadio(vehicle) && !UsesTaxiRadio(vehicle)) { gNumRetunePresses++; @@ -540,147 +543,183 @@ cMusicManager::ServiceGameMode() RadioStaticCounter = 0; } } +#ifdef RADIO_SCROLL_TO_PREV_STATION + else if(CPad::GetPad(0)->GetMouseWheelDownJustDown() || CPad::GetPad(0)->GetMouseWheelUpJustDown()) { + if(!UsesPoliceRadio(vehicle) && !UsesTaxiRadio(vehicle)) { + int scrollNext = ControlsManager.GetControllerKeyAssociatedWithAction(VEHICLE_CHANGE_RADIO_STATION, MOUSE); + int scrollPrev = scrollNext == rsMOUSEWHEELUPBUTTON ? rsMOUSEWHEELDOWNBUTTON + : scrollNext == rsMOUSEWHEELDOWNBUTTON ? rsMOUSEWHEELUPBUTTON : -1; + if(scrollPrev != -1 && !ControlsManager.IsAnyVehicleActionAssignedToMouseKey(scrollPrev)) { + gNumRetunePresses--; + gRetuneCounter = 20; + RadioStaticCounter = 0; + int track = gNumRetunePresses + vehicle->m_nRadioStation; + while(track < 0) track += NUM_RADIOS + 1; + while(track >= NUM_RADIOS + 1) track -= NUM_RADIOS + 1; + if(!DMAudio.IsMP3RadioChannelAvailable() && track == USERTRACK) gNumRetunePresses--; + } + } + } +#endif } } - if (field_3999) + if (m_bUserResumedGame) { - field_3997 = false; - field_3999 = false; + m_bRadioStreamReady = false; + m_bUserResumedGame = false; } if (m_nPlayingTrack == NO_TRACK && m_nFrontendTrack == NO_TRACK) - field_3997 = false; + m_bRadioStreamReady = false; - if (field_3996) + if (m_bGameplayAllowsRadio) { - if (field_3997) + if (!m_bRadioStreamReady) { - if (m_nAnnouncement < NO_TRACK) { - if ((m_bAnnouncementInProgress || m_nFrontendTrack == m_nPlayingTrack) && ServiceAnnouncement()) { - if (m_bAnnouncementInProgress) { - field_2 = false; - gNumRetunePresses = 0; - gRetuneCounter = 0; - return; - } - if(m_nAnnouncement == NO_TRACK) { - m_nStreamedTrack = NO_TRACK; - m_nFrontendTrack = GetCarTuning(); - field_2 = false; - gRetuneCounter = 0; - gNumRetunePresses = 0; - } - } - } - if (!m_bAnnouncementInProgress - && m_nAnnouncement == NO_TRACK - && m_nPlayingTrack == STREAMED_SOUND_RADIO_MP3_PLAYER - && !SampleManager.IsStreamPlaying(0)) - { - SampleManager.StartStreamedFile(STREAMED_SOUND_RADIO_MP3_PLAYER, 0, 0); - } - - if (!m_bRadioSetByScript) - { - if (gNumRetunePresses != 0) - { - if (--gRetuneCounter == 0) - { - field_2 = true; - gRetuneCounter = 0; - } - } - if (gRetuneCounter) - { - int32 station = gNumRetunePresses + vehicle->m_nRadioStation; - while (station >= RADIO_OFF) station -= RADIO_OFF; - - if (!DMAudio.IsMP3RadioChannelAvailable() && station == USERTRACK) - { - ++gNumRetunePresses; - station = NUM_RADIOS; - } - if (station == NUM_RADIOS) - { - if (gRetuneCounter == NUM_RADIOS + 9) - { - AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_NO_RADIO, 0.0f); - RadioStaticCounter = 5; - } - } - else - { - if (station == WILDSTYLE && gRetuneCounter == NUM_RADIOS + 9) - AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_CHANGE, 0.0f); - AudioManager.DoPoliceRadioCrackle(); - } - } - if (RadioStaticCounter < 2 && CTimer::GetTimeInMilliseconds() > RadioStaticTimer + 800) - { - AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_RADIO_CHANGE, 0.0f); - RadioStaticCounter++; - RadioStaticTimer = CTimer::GetTimeInMilliseconds(); - } - if (field_2) - m_nFrontendTrack = GetNextCarTuning(); - if (m_nFrontendTrack >= STREAMED_SOUND_CITY_AMBIENT && m_nFrontendTrack <= STREAMED_SOUND_AMBSIL_AMBIENT) - SetUpCorrectAmbienceTrack(); - ServiceTrack(vehicle, ped); - if (field_2) - field_2 = false; + if(vehicle == nil) { + m_nFrontendTrack = STREAMED_SOUND_RADIO_WAVE; // huh? return; } - if (UsesPoliceRadio(vehicle)) - m_nFrontendTrack = STREAMED_SOUND_RADIO_POLICE; - else if (UsesTaxiRadio(vehicle)) - m_nFrontendTrack = STREAMED_SOUND_RADIO_TAXI; - else { - m_nFrontendTrack = m_nRadioStation; - vehicle->m_nRadioStation = m_nRadioStation; + if(m_bRadioSetByScript) { + if(UsesPoliceRadio(vehicle)) + m_nFrontendTrack = STREAMED_SOUND_RADIO_POLICE; + else if(UsesTaxiRadio(vehicle)) + m_nFrontendTrack = STREAMED_SOUND_RADIO_TAXI; + else { + m_nFrontendTrack = m_nRadioStationScript; + vehicle->m_nRadioStation = m_nRadioStationScript; + } + if(m_nRadioPosition != -1) { + m_aTracks[m_nFrontendTrack].m_nPosition = m_nRadioPosition; + m_aTracks[m_nFrontendTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + } + m_bRadioSetByScript = false; + return; } - if (m_nRadioPosition != -1) { - m_aTracks[m_nFrontendTrack].m_nPosition = m_nRadioPosition; - m_aTracks[m_nFrontendTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + // This starts the radio when you enter the car. + m_nFrontendTrack = GetCarTuning(); + return; + } + if (m_nAnnouncement < NO_TRACK) { + if ((m_bAnnouncementInProgress || m_nFrontendTrack == m_nPlayingTrack) && ServiceAnnouncement()) { + if (m_bAnnouncementInProgress) { + m_bSetNextStation = false; + gNumRetunePresses = 0; + gRetuneCounter = 0; + return; + } + if(m_nAnnouncement == NO_TRACK) { + m_nNextTrack = NO_TRACK; + m_nFrontendTrack = GetCarTuning(); + m_bSetNextStation = false; + gRetuneCounter = 0; + gNumRetunePresses = 0; + } } + } + if (!m_bAnnouncementInProgress + && m_nAnnouncement == NO_TRACK + && m_nPlayingTrack == STREAMED_SOUND_RADIO_MP3_PLAYER + && !SampleManager.IsStreamPlaying(0)) + { + SampleManager.StartStreamedFile(STREAMED_SOUND_RADIO_MP3_PLAYER, 0, 0); + } - gRetuneCounter = 0; - gNumRetunePresses = 0; - field_2 = false; - m_bRadioSetByScript = false; + if (!m_bRadioSetByScript) + { + // Because when you switch radio back and forth, gNumRetunePresses will be 0 but gRetuneCounter won't. +#ifdef RADIO_SCROLL_TO_PREV_STATION + if(gRetuneCounter != 0) { + if(gRetuneCounter > 1) + gRetuneCounter--; + else if(gRetuneCounter == 1) { + m_bSetNextStation = true; + gRetuneCounter = 0; + } + } +#else + if (gNumRetunePresses != 0) + { + if (--gRetuneCounter == 0) + { + m_bSetNextStation = true; + gRetuneCounter = 0; + } + } +#endif + if (gRetuneCounter) + { + int32 station = gNumRetunePresses + vehicle->m_nRadioStation; +#ifdef RADIO_SCROLL_TO_PREV_STATION + while (station < 0) station += NUM_RADIOS + 1; +#endif + while (station >= NUM_RADIOS + 1) station -= NUM_RADIOS + 1; + + // Scrolling back won't hit here, so increasing isn't problem + if (!DMAudio.IsMP3RadioChannelAvailable() && station == USERTRACK) + { + ++gNumRetunePresses; + station = RADIO_OFF; + } + if (station == RADIO_OFF) + { + if (gRetuneCounter == 19) // One less then what switching radio sets, so runs right after turning off radio + { + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_TURN_OFF, 0.0f); + RadioStaticCounter = 5; + } + } + else + { +#ifdef RADIO_SCROLL_TO_PREV_STATION + if (vehicle->m_nRadioStation == RADIO_OFF && gRetuneCounter == 19) // Right after turning on the radio +#else + if (station == 0 && gRetuneCounter == 19) // Right after turning on the radio +#endif + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_TURN_ON, 0.0f); + AudioManager.DoPoliceRadioCrackle(); + } + } + if (RadioStaticCounter < 2 && CTimer::GetTimeInMilliseconds() > RadioStaticTimer + 800) + { + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_RADIO_CHANGE, 0.0f); + RadioStaticCounter++; + RadioStaticTimer = CTimer::GetTimeInMilliseconds(); + } + if (m_bSetNextStation) + m_nFrontendTrack = GetNextCarTuning(); if (m_nFrontendTrack >= STREAMED_SOUND_CITY_AMBIENT && m_nFrontendTrack <= STREAMED_SOUND_AMBSIL_AMBIENT) SetUpCorrectAmbienceTrack(); ServiceTrack(vehicle, ped); - if (field_2) - field_2 = false; + if (m_bSetNextStation) + m_bSetNextStation = false; return; } - if (vehicle == nil) - { - m_nFrontendTrack = STREAMED_SOUND_RADIO_WAVE; // huh? - return; - } - if (m_bRadioSetByScript) - { - if (UsesPoliceRadio(vehicle)) - m_nFrontendTrack = STREAMED_SOUND_RADIO_POLICE; - else if (UsesTaxiRadio(vehicle)) - m_nFrontendTrack = STREAMED_SOUND_RADIO_TAXI; - else { - m_nFrontendTrack = m_nRadioStation; - vehicle->m_nRadioStation = m_nRadioStation; - } - if (m_nRadioPosition != -1) - { - m_aTracks[m_nFrontendTrack].m_nPosition = m_nRadioPosition; - m_aTracks[m_nFrontendTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); - } - m_bRadioSetByScript = false; - return; + if (UsesPoliceRadio(vehicle)) + m_nFrontendTrack = STREAMED_SOUND_RADIO_POLICE; + else if (UsesTaxiRadio(vehicle)) + m_nFrontendTrack = STREAMED_SOUND_RADIO_TAXI; + else { + m_nFrontendTrack = m_nRadioStationScript; + vehicle->m_nRadioStation = m_nRadioStationScript; } - m_nFrontendTrack = GetCarTuning(); + if (m_nRadioPosition != -1) { + m_aTracks[m_nFrontendTrack].m_nPosition = m_nRadioPosition; + m_aTracks[m_nFrontendTrack].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + } + + gRetuneCounter = 0; + gNumRetunePresses = 0; + m_bSetNextStation = false; + m_bRadioSetByScript = false; + if (m_nFrontendTrack >= STREAMED_SOUND_CITY_AMBIENT && m_nFrontendTrack <= STREAMED_SOUND_AMBSIL_AMBIENT) + SetUpCorrectAmbienceTrack(); + ServiceTrack(vehicle, ped); + if (m_bSetNextStation) + m_bSetNextStation = false; return; } @@ -692,7 +731,7 @@ cMusicManager::ServiceGameMode() g_bAnnouncementReadPosAlready = false; m_nAnnouncement = NO_TRACK; m_bAnnouncementInProgress = false; - m_nStreamedTrack = NO_TRACK; + m_nNextTrack = NO_TRACK; m_nFrontendTrack = NO_TRACK; m_nPlayingTrack = NO_TRACK; } @@ -834,7 +873,7 @@ cMusicManager::ServiceAnnouncement() { if (m_bAnnouncementInProgress) { if (SampleManager.IsStreamPlaying(0)) - m_nPlayingTrack = m_nStreamedTrack; + m_nPlayingTrack = m_nNextTrack; else if (m_nPlayingTrack != NO_TRACK) { m_nAnnouncement = NO_TRACK; m_bAnnouncementInProgress = false; @@ -852,9 +891,9 @@ cMusicManager::ServiceAnnouncement() } else { g_bAnnouncementReadPosAlready = false; m_nPlayingTrack = NO_TRACK; - m_nStreamedTrack = m_nAnnouncement; - SampleManager.SetStreamedFileLoopFlag(0, false); - SampleManager.StartStreamedFile(m_nStreamedTrack, 0, 0); + m_nNextTrack = m_nAnnouncement; + SampleManager.SetStreamedFileLoopFlag(0, 0); + SampleManager.StartStreamedFile(m_nNextTrack, 0, 0); SampleManager.SetStreamedVolumeAndPan(MAX_VOLUME, 63, 0, 0); m_bAnnouncementInProgress = true; } @@ -868,9 +907,9 @@ cMusicManager::ServiceTrack(CVehicle *veh, CPed *ped) static bool bRadioStatsRecorded = false; static bool bRadioStatsRecorded2 = false; uint8 volume; - if (!field_398F) - m_nStreamedTrack = m_nFrontendTrack; - if (gRetuneCounter != 0 || field_2) { + if (!m_bTrackChangeStarted) + m_nNextTrack = m_nFrontendTrack; + if (gRetuneCounter != 0 || m_bSetNextStation) { if (SampleManager.IsStreamPlaying(0)) { if (m_nPlayingTrack != NO_TRACK && !bRadioStatsRecorded) { m_aTracks[m_nPlayingTrack].m_nPosition = SampleManager.GetStreamedFilePosition(0); @@ -889,28 +928,35 @@ cMusicManager::ServiceTrack(CVehicle *veh, CPed *ped) m_nPlayingTrack = NO_TRACK; } - if (m_nStreamedTrack != m_nPlayingTrack) + if (m_nNextTrack != m_nPlayingTrack) { - field_398F = true; + m_bTrackChangeStarted = true; SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); if (!(AudioManager.m_FrameCounter & 1)) { - if (field_3995 || !SampleManager.IsStreamPlaying(0)) { + if (m_bVerifyNextTrackStartedToPlay || !SampleManager.IsStreamPlaying(0)) { bRadioStatsRecorded2 = false; if (SampleManager.IsStreamPlaying(0)) { - m_nPlayingTrack = m_nStreamedTrack; - field_3995 = false; - field_398F = false; + m_nPlayingTrack = m_nNextTrack; + m_bVerifyNextTrackStartedToPlay = false; + m_bTrackChangeStarted = false; if (veh) { - if (veh->m_nRadioStation < STREAMED_SOUND_CITY_AMBIENT || veh->m_nRadioStation > STREAMED_SOUND_AMBSIL_AMBIENT) +#ifdef FIX_BUGS + if (m_nPlayingTrack >= STREAMED_SOUND_CITY_AMBIENT && m_nPlayingTrack <= STREAMED_SOUND_AMBSIL_AMBIENT) + veh->m_nRadioStation = RADIO_OFF; + else if (m_nPlayingTrack < STREAMED_SOUND_CITY_AMBIENT) veh->m_nRadioStation = m_nPlayingTrack; +#else + if (veh->m_nRadioStation >= STREAMED_SOUND_CITY_AMBIENT && veh->m_nRadioStation <= STREAMED_SOUND_AMBSIL_AMBIENT) + veh->m_nRadioStation = RADIO_OFF; else - veh->m_nRadioStation = STREAMED_SOUND_CITY_AMBIENT; + veh->m_nRadioStation = m_nPlayingTrack; +#endif } } else { - uint32 pos = GetTrackStartPos(m_nStreamedTrack); - if (m_nStreamedTrack != NO_TRACK) { + uint32 pos = GetTrackStartPos(m_nNextTrack); + if (m_nNextTrack != NO_TRACK) { SampleManager.SetStreamedFileLoopFlag(1, 0); - SampleManager.StartStreamedFile(m_nStreamedTrack, pos, 0); + SampleManager.StartStreamedFile(m_nNextTrack, pos, 0); if (m_nFrontendTrack < STREAMED_SOUND_CITY_AMBIENT || m_nFrontendTrack > STREAMED_SOUND_AMBSIL_AMBIENT) { m_nVolumeLatency = 10; @@ -923,9 +969,9 @@ cMusicManager::ServiceTrack(CVehicle *veh, CPed *ped) ComputeAmbienceVol(true, volume); SampleManager.SetStreamedVolumeAndPan(volume, 63, 1, 0); } - if (m_nStreamedTrack < STREAMED_SOUND_CITY_AMBIENT) + if (m_nNextTrack < STREAMED_SOUND_CITY_AMBIENT) m_nLastTrackServiceTime = CTimer::GetTimeInMillisecondsPauseMode(); - field_3995 = true; + m_bVerifyNextTrackStartedToPlay = true; } } } else { @@ -939,8 +985,8 @@ cMusicManager::ServiceTrack(CVehicle *veh, CPed *ped) RecordRadioStats(); if (m_nPlayingTrack >= STREAMED_SOUND_HAVANA_CITY_AMBIENT && m_nPlayingTrack <= STREAMED_SOUND_HAVANA_BEACH_AMBIENT) { - if (m_nStreamedTrack >= STREAMED_SOUND_HAVANA_CITY_AMBIENT && m_nStreamedTrack <= STREAMED_SOUND_HAVANA_BEACH_AMBIENT) - AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_CHANGE_2, 0.0); + if (m_nNextTrack >= STREAMED_SOUND_HAVANA_CITY_AMBIENT && m_nNextTrack <= STREAMED_SOUND_HAVANA_BEACH_AMBIENT) + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_HURRICANE, 0.0); } } SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); @@ -1050,14 +1096,14 @@ cMusicManager::StopCutSceneMusic(void) } void -cMusicManager::PlayFrontEndTrack(uint32 track, uint8 bPlayInFrontend) +cMusicManager::PlayFrontEndTrack(uint32 track, uint8 loopFlag) { if (IsInitialised() && !m_bDisabled && track < TOTAL_STREAMED_SOUNDS && (m_nUpcomingMusicMode == MUSICMODE_FRONTEND || m_nMusicMode == MUSICMODE_FRONTEND)) { m_nFrontendTrack = track; - field_398E = bPlayInFrontend; + m_FrontendLoopFlag = loopFlag; if (m_nMusicMode != MUSICMODE_FRONTEND) - field_399C = true; + m_bEarlyFrontendTrack = true; } } @@ -1083,10 +1129,18 @@ cMusicManager::GetNextCarTuning() if (UsesPoliceRadio(veh)) return STREAMED_SOUND_RADIO_POLICE; if (UsesTaxiRadio(veh)) return STREAMED_SOUND_RADIO_TAXI; if (gNumRetunePresses != 0) { +#ifdef RADIO_SCROLL_TO_PREV_STATION + // m_nRadioStation is unsigned, so... + int station = veh->m_nRadioStation + gNumRetunePresses; + while(station < 0) station += NUM_RADIOS + 1; + while(station >= NUM_RADIOS + 1) station -= NUM_RADIOS + 1; + veh->m_nRadioStation = station; +#else veh->m_nRadioStation += gNumRetunePresses; - while (veh->m_nRadioStation >= RADIO_OFF) - veh->m_nRadioStation -= RADIO_OFF; - DMAudio.IsMP3RadioChannelAvailable(); // woof, just call and do nothing =P + while(veh->m_nRadioStation >= NUM_RADIOS + 1) + veh->m_nRadioStation -= NUM_RADIOS + 1; +#endif + DMAudio.IsMP3RadioChannelAvailable(); // woof, just call and do nothing =P they manipulate gNumRetunePresses on DisplayRadioStationName in this case gNumRetunePresses = 0; } return veh->m_nRadioStation; @@ -1129,7 +1183,7 @@ cMusicManager::GetTrackStartPos(uint32 track) uint32 cMusicManager::GetRadioPosition(uint32 station) { - if (station < STREAMED_SOUND_CITY_AMBIENT) + if (station < NUM_RADIOS) return GetTrackStartPos(station); return 0; } @@ -1158,7 +1212,7 @@ cMusicManager::SetMalibuClubTrackPos(uint8 scriptObject) { if (!IsInitialised()) m_aTracks[STREAMED_SOUND_MALIBU_AMBIENT].m_nPosition = 8640; - if (m_nStreamedTrack != STREAMED_SOUND_MALIBU_AMBIENT && m_nPlayingTrack != STREAMED_SOUND_MALIBU_AMBIENT) { + if (m_nNextTrack != STREAMED_SOUND_MALIBU_AMBIENT && m_nPlayingTrack != STREAMED_SOUND_MALIBU_AMBIENT) { switch (scriptObject) { case SCRIPT_SOUND_NEW_BUILDING_MALIBU_1: @@ -1180,7 +1234,7 @@ cMusicManager::SetStripClubTrackPos(uint8 scriptObject) { if (!IsInitialised()) m_aTracks[STREAMED_SOUND_STRIPCLUB_AMBIENT].m_nPosition = 0; - if (m_nStreamedTrack != STREAMED_SOUND_STRIPCLUB_AMBIENT && m_nPlayingTrack != STREAMED_SOUND_STRIPCLUB_AMBIENT) + if (m_nNextTrack != STREAMED_SOUND_STRIPCLUB_AMBIENT && m_nPlayingTrack != STREAMED_SOUND_STRIPCLUB_AMBIENT) { switch (scriptObject) { @@ -1201,7 +1255,7 @@ cMusicManager::SetStripClubTrackPos(uint8 scriptObject) void cMusicManager::DisplayRadioStationName() { - int8 gStreamedSound; + uint8 gStreamedSound; static wchar *pCurrentStation = nil; static uint8 cDisplay = 0; @@ -1211,20 +1265,25 @@ cMusicManager::DisplayRadioStationName() if (vehicle) { - uint8 track; + int8 track; gStreamedSound = vehicle->m_nRadioStation; if (gStreamedSound >= STREAMED_SOUND_CITY_AMBIENT && gStreamedSound <= STREAMED_SOUND_AMBSIL_AMBIENT) - gStreamedSound = STREAMED_SOUND_CITY_AMBIENT; + gStreamedSound = RADIO_OFF; if (gNumRetunePresses != 0) { track = gNumRetunePresses + gStreamedSound; - while (track >= RADIO_OFF) track -= RADIO_OFF; +#ifdef RADIO_SCROLL_TO_PREV_STATION + while (track < 0) track += NUM_RADIOS + 1; +#endif + while (track >= NUM_RADIOS + 1) track -= NUM_RADIOS + 1; + + // We already handle this condition while scrolling back, on key press. No need to change this. if (!DMAudio.IsMP3RadioChannelAvailable() && track == USERTRACK) gNumRetunePresses++; } else #ifdef FIX_BUGS - track = m_nFrontendTrack == NO_TRACK ? POLICE_RADIO : m_nFrontendTrack; + track = GetCarTuning(); // gStreamedSound or veh->m_nRadioStation would also work, but these don't cover police/taxi radios #else track = m_nFrontendTrack; #endif @@ -1244,6 +1303,18 @@ cMusicManager::DisplayRadioStationName() if (!SampleManager.IsMP3RadioChannelAvailable()) return; string = TheText.Get("FEA_MP3"); break; +#ifdef RADIO_OFF_TEXT + case RADIO_OFF: { + extern wchar WideErrorString[]; + + string = TheText.Get("FEA_FMN"); + if (string == WideErrorString) { + pCurrentStation = nil; + return; + } + break; + } +#endif default: return; }; @@ -1275,6 +1346,11 @@ cMusicManager::DisplayRadioStationName() CFont::DrawFonts(); } } + // Always show station text after entering car. Same behaviour as III and SA. +#ifdef FIX_BUGS + else + pCurrentStation = nil; +#endif } bool diff --git a/src/audio/MusicManager.h b/src/audio/MusicManager.h index 5691b7b8..27456d79 100644 --- a/src/audio/MusicManager.h +++ b/src/audio/MusicManager.h @@ -18,7 +18,7 @@ class cMusicManager public: bool m_bIsInitialised; bool m_bDisabled; - bool field_2; + bool m_bSetNextStation; uint8 m_nVolumeLatency; uint8 m_nCurrentVolume; uint8 m_nMaxVolume; @@ -28,25 +28,25 @@ public: bool m_bResetTimers; uint32 m_nResetTime; bool m_bRadioSetByScript; - uint8 m_nRadioStation; + uint8 m_nRadioStationScript; int32 m_nRadioPosition; uint32 m_nRadioInCar; uint32 m_nFrontendTrack; uint32 m_nPlayingTrack; uint8 m_nUpcomingMusicMode; uint8 m_nMusicMode; - bool field_398E; - bool field_398F; - uint32 m_nStreamedTrack; - bool field_3994; - bool field_3995; - bool field_3996; - bool field_3997; + bool m_FrontendLoopFlag; + bool m_bTrackChangeStarted; + uint32 m_nNextTrack; + bool m_nNextLoopFlag; + bool m_bVerifyNextTrackStartedToPlay; + bool m_bGameplayAllowsRadio; + bool m_bRadioStreamReady; int8 nFramesSinceCutsceneEnded; - bool field_3999; - bool field_399A; + bool m_bUserResumedGame; + bool m_bMusicModeChangeStarted; uint8 m_nMusicModeToBeSet; - bool field_399C; + bool m_bEarlyFrontendTrack; float aListenTimeArray[NUM_RADIOS]; float m_nLastTrackServiceTime; diff --git a/src/audio/audio_enums.h b/src/audio/audio_enums.h index 91fcec49..990b2d73 100644 --- a/src/audio/audio_enums.h +++ b/src/audio/audio_enums.h @@ -14,8 +14,8 @@ enum eRadioStation USERTRACK, NUM_RADIOS = 10, POLICE_RADIO = 10, + RADIO_OFF = 10, //TAXI_RADIO, - RADIO_OFF, }; enum eMusicMode diff --git a/src/audio/soundlist.h b/src/audio/soundlist.h index 4d88590e..e86b13ee 100644 --- a/src/audio/soundlist.h +++ b/src/audio/soundlist.h @@ -171,22 +171,22 @@ enum eSound SOUND_CAR_PED_COLLISION, SOUND_CLOCK_TICK, SOUND_PART_MISSION_COMPLETE, - SOUND_FRONTEND_MENU_STARTING, // same with SOUND_HUD_SOUND + SOUND_FRONTEND_MENU_STARTING, // same sound as SOUND_HUD // TODO(Miami): What are 170-175?? - SOUND_FRONTEND_NO_RADIO = 176, // those 3 are all same sound - SOUND_FRONTEND_RADIO_CHANGE, - SOUND_FRONTEND_RADIO_CHANGE_2, - SOUND_HUD_SOUND, + SOUND_FRONTEND_RADIO_TURN_OFF = 176, // those 2 are same sound + SOUND_FRONTEND_RADIO_TURN_ON, + SOUND_FRONTEND_HURRICANE, // yes, frontend + SOUND_HUD, SOUND_180, SOUND_181, SOUND_182, SOUND_LIGHTNING, SOUND_BULLETTRACE_1, SOUND_BULLETTRACE_2, - SOUND_186, // makes same sound with 40 - SOUND_187, // makes same sound with 46 + SOUND_186, // makes same sound as 40 + SOUND_187, // makes same sound as 46 SOUND_MELEE_ATTACK_START, SOUND_SKATING, SOUND_WEAPON_MINIGUN_ATTACK, diff --git a/src/core/Camera.cpp b/src/core/Camera.cpp index 25d2e5c3..5b3f9aa5 100644 --- a/src/core/Camera.cpp +++ b/src/core/Camera.cpp @@ -1768,7 +1768,7 @@ CCamera::CamControl(void) (m_bLookingAtPlayer || WhoIsInControlOfTheCamera == CAMCONTROL_OBBE) && !m_WideScreenOn && (WhoIsInControlOfTheCamera != CAMCONTROL_OBBE || bSwitchedToObbeCam)) - DMAudio.PlayFrontEndSound(SOUND_HUD_SOUND, 0); + DMAudio.PlayFrontEndSound(SOUND_HUD, 0); } // What a mess! diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index 23e86a79..7f634619 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -1765,6 +1765,51 @@ void CControllerConfigManager::DeleteMatching1rstPersonControls(e_ControllerActi #undef CLEAR_ACTION_IF_NEEDED +#ifdef RADIO_SCROLL_TO_PREV_STATION +#define CHECK_ACTION(action) \ +if (key == GetControllerKeyAssociatedWithAction(action, type))\ + return true; + +bool CControllerConfigManager::IsAnyVehicleActionAssignedToMouseKey(int32 key) +{ + const eControllerType type = MOUSE; + if (!GetIsKeyBlank(key, type)) + { +#ifdef BIND_VEHICLE_FIREWEAPON + CHECK_ACTION(VEHICLE_FIREWEAPON); +#endif + CHECK_ACTION(VEHICLE_LOOKBEHIND); + CHECK_ACTION(VEHICLE_LOOKLEFT); + CHECK_ACTION(VEHICLE_LOOKRIGHT); + CHECK_ACTION(VEHICLE_HORN); + CHECK_ACTION(VEHICLE_HANDBRAKE); + CHECK_ACTION(VEHICLE_ACCELERATE); + CHECK_ACTION(VEHICLE_BRAKE); + CHECK_ACTION(VEHICLE_CHANGE_RADIO_STATION); + CHECK_ACTION(TOGGLE_SUBMISSIONS); + CHECK_ACTION(VEHICLE_TURRETLEFT); + CHECK_ACTION(VEHICLE_TURRETRIGHT); + CHECK_ACTION(VEHICLE_TURRETUP); + CHECK_ACTION(VEHICLE_TURRETDOWN); + CHECK_ACTION(VEHICLE_ENTER_EXIT); + CHECK_ACTION(CAMERA_CHANGE_VIEW_ALL_SITUATIONS); +#ifndef BIND_VEHICLE_FIREWEAPON + CHECK_ACTION(PED_FIREWEAPON); +#endif + CHECK_ACTION(GO_LEFT); + CHECK_ACTION(GO_RIGHT); + CHECK_ACTION(NETWORK_TALK); + CHECK_ACTION(SWITCH_DEBUG_CAM_ON); + CHECK_ACTION(TOGGLE_DPAD); + CHECK_ACTION(TAKE_SCREEN_SHOT); + CHECK_ACTION(SHOW_MOUSE_POINTER_TOGGLE); + } + return false; +} + +#undef CHECK_ACTION +#endif + void CControllerConfigManager::DeleteMatchingActionInitiators(e_ControllerAction action, int32 key, eControllerType type) { if (!GetIsKeyBlank(key, type)) diff --git a/src/core/ControllerConfig.h b/src/core/ControllerConfig.h index 604fb5cc..d61e23e6 100644 --- a/src/core/ControllerConfig.h +++ b/src/core/ControllerConfig.h @@ -195,6 +195,10 @@ public: void DeleteMatching1rstPersonControls (e_ControllerAction action, int32 key, eControllerType type); void DeleteMatchingActionInitiators (e_ControllerAction action, int32 key, eControllerType type); +#ifdef RADIO_SCROLL_TO_PREV_STATION + bool IsAnyVehicleActionAssignedToMouseKey(int32 key); +#endif + bool GetIsKeyBlank(int32 key, eControllerType type); e_ControllerActionType GetActionType(e_ControllerAction action); diff --git a/src/core/config.h b/src/core/config.h index 329d70b9..f64a7602 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -306,8 +306,8 @@ enum Config { // Hud, frontend and radar #define PC_MENU - #define FIX_RADAR // use radar size from early version before R* broke it +#define RADIO_OFF_TEXT // Won't work without FIX_BUGS #ifndef PC_MENU # define PS2_MENU @@ -376,6 +376,7 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #define FREE_CAM // Rotating cam // Audio +#define RADIO_SCROLL_TO_PREV_STATION // Won't work without FIX_BUGS #define AUDIO_CACHE // cache sound lengths to speed up the cold boot //#define PS2_AUDIO_PATHS // changes audio paths for cutscenes and radio to PS2 paths (needs vbdec on MSS builds) //#define AUDIO_OAL_USE_SNDFILE // use libsndfile to decode WAVs instead of our internal decoder @@ -462,6 +463,7 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #undef BUTTON_ICONS #undef FIX_RADAR +#undef RADIO_OFF_TEXT #undef MAP_ENHANCEMENTS #undef MUCH_SHORTER_OUTRO_SCREEN @@ -490,4 +492,6 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #undef IMPROVED_CAMERA #undef FREE_CAM #undef BIG_IMG + +#undef RADIO_SCROLL_TO_PREV_STATION #endif diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index a0f3c3ee..0d69c23f 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -1225,7 +1225,7 @@ void CHud::Draw() m_HelpMessageDisplayTime = CMessages::GetWideStringLength(m_HelpMessage) * 0.05f + 3.0f; if (TheCamera.m_ScreenReductionPercentage == 0.0f) - DMAudio.PlayFrontEndSound(SOUND_HUD_SOUND, 0); + DMAudio.PlayFrontEndSound(SOUND_HUD, 0); break; case 1: case 2: diff --git a/src/save/GenericGameStorage.cpp b/src/save/GenericGameStorage.cpp index 54685b66..a97e9af7 100644 --- a/src/save/GenericGameStorage.cpp +++ b/src/save/GenericGameStorage.cpp @@ -67,16 +67,16 @@ bool StillToFadeOut; uint32 TimeStartedCountingForFade; uint32 TimeToStayFadedBeforeFadeOut = 1750; -uint32 RadioStationPosition[NUM_RADIOS]; +int32 RadioStationPosition[NUM_RADIOS]; void InitRadioStationPositionList() { for (int i = 0; i < NUM_RADIOS; i++) - RadioStationPosition[i] = 0; + RadioStationPosition[i] = -1; } -uint32 +int32 GetSavedRadioStationPosition(int32 station) { return RadioStationPosition[station]; diff --git a/src/save/GenericGameStorage.h b/src/save/GenericGameStorage.h index 07aa23ca..65f1cc16 100644 --- a/src/save/GenericGameStorage.h +++ b/src/save/GenericGameStorage.h @@ -6,7 +6,7 @@ #define SLOT_COUNT (8) void InitRadioStationPositionList(); -uint32 GetSavedRadioStationPosition(int32 station); +int32 GetSavedRadioStationPosition(int32 station); void PopulateRadioStationPositionList(); bool GenericSave(int file); bool GenericLoad(); diff --git a/src/text/Text.cpp b/src/text/Text.cpp index 20229bf0..4931a97a 100644 --- a/src/text/Text.cpp +++ b/src/text/Text.cpp @@ -9,7 +9,7 @@ #include "Text.h" #include "Timer.h" -static wchar WideErrorString[25]; +wchar WideErrorString[25]; CText TheText; diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp index 0ecc5004..4e6c24ef 100644 --- a/src/vehicles/Vehicle.cpp +++ b/src/vehicles/Vehicle.cpp @@ -152,7 +152,7 @@ CVehicle::CVehicle(uint8 CreatedBy) m_audioEntityId = DMAudio.CreateEntity(AUDIOTYPE_PHYSICAL, this); if(m_audioEntityId >= 0) DMAudio.SetEntityStatus(m_audioEntityId, true); - //m_nRadioStation = CGeneral::GetRandomNumber() % USERTRACK; + //m_nRadioStation = CGeneral::GetRandomNumber() % NUM_RADIOS; switch(GetModelIndex()){ case MI_HUNTER: case MI_ANGEL: @@ -169,7 +169,7 @@ CVehicle::CVehicle(uint8 CreatedBy) m_nRadioStation = RADIO_OFF; break; default: - m_nRadioStation = CGeneral::GetRandomNumber() % USERTRACK; + m_nRadioStation = CGeneral::GetRandomNumber() % NUM_RADIOS; break; } m_pCurGroundEntity = nil; diff --git a/src/vehicles/Vehicle.h b/src/vehicles/Vehicle.h index 4a361215..2fb2caf4 100644 --- a/src/vehicles/Vehicle.h +++ b/src/vehicles/Vehicle.h @@ -266,7 +266,7 @@ public: eCarLock m_nDoorLock; int8 m_nLastWeaponDamage; // see eWeaponType, -1 if no damage CEntity *m_pLastDamageEntity; - int8 m_nRadioStation; + uint8 m_nRadioStation; uint8 m_bRainAudioCounter; uint8 m_bRainSamplesCounter; uint32 m_nCarHornTimer; From 4281730b16608714584c410a5e2111dae461b6bc Mon Sep 17 00:00:00 2001 From: withmorten Date: Tue, 2 Feb 2021 11:27:30 +0100 Subject: [PATCH 033/113] fix UB and potential crashes when doing ice cream --- src/peds/PedAttractor.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/peds/PedAttractor.cpp b/src/peds/PedAttractor.cpp index de587270..11fb5b31 100644 --- a/src/peds/PedAttractor.cpp +++ b/src/peds/PedAttractor.cpp @@ -113,7 +113,11 @@ const C2dEffect* CPedAttractorManager::GetEffectForIceCreamVan(CVehicle* pVehicl CVehicleToEffect effect(pVehicle); vVehicleToEffect.push_back(effect); POP_MEMID(); +#ifdef FIX_BUGS + return vVehicleToEffect.back().ChooseEffect(pos); +#else return effect.ChooseEffect(pos); +#endif } CVehicle* CPedAttractorManager::GetIceCreamVanForEffect(C2dEffect* pEffect) From 1b293a3cfb914748a217f36a98ac650d28424697 Mon Sep 17 00:00:00 2001 From: withmorten Date: Tue, 2 Feb 2021 11:32:20 +0100 Subject: [PATCH 034/113] no advanced script log when log level is 0 --- src/core/config.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/config.h b/src/core/config.h index f64a7602..e75cdfb0 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -347,6 +347,10 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #define USE_ADVANCED_SCRIPT_DEBUG_OUTPUT #define SCRIPT_LOG_FILE_LEVEL 0 // 0 == no log, 1 == overwrite every frame, 2 == full log +#if SCRIPT_LOG_FILE_LEVEL == 0 +#undef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT +#endif + #ifndef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT #define USE_BASIC_SCRIPT_DEBUG_OUTPUT #endif From 713562685a89578ae5e4008f0a283c39175429fc Mon Sep 17 00:00:00 2001 From: erorcun Date: Tue, 2 Feb 2021 16:39:08 +0300 Subject: [PATCH 035/113] OAL Loops, fixes --- src/audio/oal/channel.cpp | 56 +++++++++++++++++++++++++-- src/audio/oal/channel.h | 6 ++- src/audio/oal/stream.cpp | 79 ++++++++++++++++++++++++--------------- src/audio/oal/stream.h | 3 ++ src/audio/sampman_oal.cpp | 63 ++++++++++++++++--------------- src/core/Frontend.cpp | 2 +- 6 files changed, 143 insertions(+), 66 deletions(-) diff --git a/src/audio/oal/channel.cpp b/src/audio/oal/channel.cpp index 673a4aed..d1fd0aea 100644 --- a/src/audio/oal/channel.cpp +++ b/src/audio/oal/channel.cpp @@ -15,6 +15,8 @@ ALuint alFilters[MAXCHANNELS+MAX2DCHANNELS]; ALuint alBuffers[MAXCHANNELS+MAX2DCHANNELS]; bool bChannelsCreated = false; +int32 CChannel::channelsThatNeedService = 0; + void CChannel::InitChannels() { @@ -59,7 +61,9 @@ void CChannel::SetDefault() Position[0] = 0.0f; Position[1] = 0.0f; Position[2] = 0.0f; Distances[0] = 0.0f; Distances[1] = FLT_MAX; - LoopCount = 1; + + LoopCount = 1; + LastProcessedOffset = UINT32_MAX; LoopPoints[0] = 0; LoopPoints[1] = -1; Frequency = MAX_FREQ; @@ -67,6 +71,10 @@ void CChannel::SetDefault() void CChannel::Reset() { + // Here is safe because ctor don't call this + if (LoopCount > 1) + channelsThatNeedService--; + ClearBuffer(); SetDefault(); } @@ -165,10 +173,51 @@ void CChannel::SetCurrentFreq(uint32 freq) SetPitch(ALfloat(freq) / Frequency); } -void CChannel::SetLoopCount(int32 loopCount) // fake. TODO: +void CChannel::SetLoopCount(int32 count) { if ( !HasSource() ) return; - alSourcei(alSources[id], AL_LOOPING, loopCount == 1 ? AL_FALSE : AL_TRUE); + + // 0: loop indefinitely, 1: play one time, 2: play two times etc... + // only > 1 needs manual processing + + if (LoopCount > 1 && count < 2) + channelsThatNeedService--; + else if (LoopCount < 2 && count > 1) + channelsThatNeedService++; + + alSourcei(alSources[id], AL_LOOPING, count == 1 ? AL_FALSE : AL_TRUE); + LoopCount = count; +} + +bool CChannel::Update() +{ + if (!HasSource()) return false; + if (LoopCount < 2) return false; + + ALint state; + alGetSourcei(alSources[id], AL_SOURCE_STATE, &state); + if (state == AL_STOPPED) { + debug("Looping channels(%d in this case) shouldn't report AL_STOPPED, but nvm\n", id); + SetLoopCount(1); + return true; + } + + assert(channelsThatNeedService > 0 && "Ref counting is broken"); + + ALint offset; + alGetSourcei(alSources[id], AL_SAMPLE_OFFSET, &offset); + + // Rewound + if (offset < LastProcessedOffset) { + LoopCount--; + if (LoopCount == 1) { + // Playing last tune... + channelsThatNeedService--; + alSourcei(alSources[id], AL_LOOPING, AL_FALSE); + } + } + LastProcessedOffset = offset; + return true; } void CChannel::SetLoopPoints(ALint start, ALint end) @@ -200,6 +249,7 @@ void CChannel::SetPan(int32 pan) void CChannel::ClearBuffer() { if ( !HasSource() ) return; + alSourcei(alSources[id], AL_LOOPING, AL_FALSE); alSourcei(alSources[id], AL_BUFFER, AL_NONE); Data = nil; DataSize = 0; diff --git a/src/audio/oal/channel.h b/src/audio/oal/channel.h index 81817a32..b081be25 100644 --- a/src/audio/oal/channel.h +++ b/src/audio/oal/channel.h @@ -19,7 +19,10 @@ class CChannel float Distances[2]; int32 LoopCount; ALint LoopPoints[2]; + ALint LastProcessedOffset; public: + static int32 channelsThatNeedService; + static void InitChannels(); static void DestroyChannels(); @@ -37,7 +40,7 @@ public: void SetVolume(int32 vol); void SetSampleData(void *_data, size_t _DataSize, int32 freq); void SetCurrentFreq(uint32 freq); - void SetLoopCount(int32 loopCount); // fake + void SetLoopCount(int32 count); void SetLoopPoints(ALint start, ALint end); void SetPosition(float x, float y, float z); void SetDistances(float max, float min); @@ -45,6 +48,7 @@ public: void ClearBuffer(); void SetReverbMix(ALuint slot, float mix); void UpdateReverb(ALuint slot); + bool Update(); }; #endif \ No newline at end of file diff --git a/src/audio/oal/stream.cpp b/src/audio/oal/stream.cpp index 19fa4ec4..4817d6d5 100644 --- a/src/audio/oal/stream.cpp +++ b/src/audio/oal/stream.cpp @@ -499,6 +499,7 @@ public: m_bOpened = mpg123_open(m_pMH, path) == MPG123_OK && mpg123_getformat(m_pMH, &rate, &channels, &encoding) == MPG123_OK; + m_nRate = rate; m_nChannels = channels; @@ -980,7 +981,8 @@ CStream::CStream(char *filename, ALuint *sources, ALuint (&buffers)[NUM_STREAMBU m_bReset(false), m_nVolume(0), m_nPan(0), - m_nPosBeforeReset(0) + m_nPosBeforeReset(0), + m_nLoopCount(1) { // Be case-insensitive on linux (from https://github.com/OneSadCookie/fcaseopen/) @@ -1078,7 +1080,7 @@ bool CStream::IsPlaying() ALint sourceState[2]; alGetSourcei(m_pAlSources[0], AL_SOURCE_STATE, &sourceState[0]); alGetSourcei(m_pAlSources[1], AL_SOURCE_STATE, &sourceState[1]); - if ( m_bActive || sourceState[0] == AL_PLAYING || sourceState[1] == AL_PLAYING) + if (sourceState[0] == AL_PLAYING || sourceState[1] == AL_PLAYING) return true; } @@ -1236,6 +1238,8 @@ bool CStream::Setup() { if ( IsOpened() ) { + alSourcei(m_pAlSources[0], AL_LOOPING, AL_FALSE); + alSourcei(m_pAlSources[1], AL_LOOPING, AL_FALSE); m_pSoundFile->Seek(0); //SetPosition(0.0f, 0.0f, 0.0f); SetPitch(1.0f); @@ -1246,6 +1250,13 @@ bool CStream::Setup() return IsOpened(); } +void CStream::SetLoopCount(int32 count) +{ + if ( !HasSource() ) return; + + m_nLoopCount = count; +} + void CStream::SetPlay(bool state) { if ( !HasSource() ) return; @@ -1305,7 +1316,7 @@ void CStream::Update() if ( !m_bPaused ) { - ALint sourceState[2]; + ALint totalBuffers[2] = { 0, 0 }; ALint buffersProcessed[2] = { 0, 0 }; // Relying a lot on left buffer states in here @@ -1313,44 +1324,51 @@ void CStream::Update() do { //alSourcef(m_pAlSources[0], AL_ROLLOFF_FACTOR, 0.0f); - alGetSourcei(m_pAlSources[0], AL_SOURCE_STATE, &sourceState[0]); + alGetSourcei(m_pAlSources[0], AL_BUFFERS_QUEUED, &totalBuffers[0]); alGetSourcei(m_pAlSources[0], AL_BUFFERS_PROCESSED, &buffersProcessed[0]); //alSourcef(m_pAlSources[1], AL_ROLLOFF_FACTOR, 0.0f); - alGetSourcei(m_pAlSources[1], AL_SOURCE_STATE, &sourceState[1]); + alGetSourcei(m_pAlSources[1], AL_BUFFERS_QUEUED, &totalBuffers[1]); alGetSourcei(m_pAlSources[1], AL_BUFFERS_PROCESSED, &buffersProcessed[1]); } while (buffersProcessed[0] != buffersProcessed[1]); - ALint looping = AL_FALSE; - alGetSourcei(m_pAlSources[0], AL_LOOPING, &looping); - - if ( looping == AL_TRUE ) - { - TRACE("stream set looping"); - alSourcei(m_pAlSources[0], AL_LOOPING, AL_TRUE); - alSourcei(m_pAlSources[1], AL_LOOPING, AL_TRUE); - } - assert(buffersProcessed[0] == buffersProcessed[1]); - while( buffersProcessed[0]-- ) + // Correcting OpenAL concepts here: + // AL_BUFFERS_QUEUED = Number of *all* buffers in queue, including processed, processing and pending + // AL_BUFFERS_PROCESSED = Index of the buffer being processing right now. Buffers coming after that(have greater index) are pending buffers. + // which means: totalBuffers[0] - buffersProcessed[0] = pending buffers + + bool buffersRefilled = false; + + // We should wait queue to be cleared to loop track, because position calculation relies on queue. + if (m_nLoopCount != 1 && m_bActive && totalBuffers[0] == 0) { - ALuint buffer[2]; - - alSourceUnqueueBuffers(m_pAlSources[0], 1, &buffer[0]); - alSourceUnqueueBuffers(m_pAlSources[1], 1, &buffer[1]); - - if (m_bActive && FillBuffer(buffer)) + Setup(); + buffersRefilled = FillBuffers() != 0; + if (m_nLoopCount != 0) + m_nLoopCount--; + } + else + { + while( buffersProcessed[0]-- ) { - alSourceQueueBuffers(m_pAlSources[0], 1, &buffer[0]); - alSourceQueueBuffers(m_pAlSources[1], 1, &buffer[1]); + ALuint buffer[2]; + + alSourceUnqueueBuffers(m_pAlSources[0], 1, &buffer[0]); + alSourceUnqueueBuffers(m_pAlSources[1], 1, &buffer[1]); + + if (m_bActive && FillBuffer(buffer)) + { + buffersRefilled = true; + alSourceQueueBuffers(m_pAlSources[0], 1, &buffer[0]); + alSourceQueueBuffers(m_pAlSources[1], 1, &buffer[1]); + } } } - - if ( sourceState[0] != AL_PLAYING ) - { - alGetSourcei(m_pAlSources[0], AL_BUFFERS_PROCESSED, &buffersProcessed[0]); - SetPlay(buffersProcessed[0]!=0); - } + + // Two reasons: 1-Source may be starved to audio and stopped itself, 2- We're already waiting it to starve and die for looping track! + if (m_bActive && (buffersRefilled || (totalBuffers[1] - buffersProcessed[1] != 0))) + SetPlay(true); } } @@ -1362,6 +1380,7 @@ void CStream::ProviderInit() { SetPan(m_nPan); SetVolume(m_nVolume); + SetLoopCount(m_nLoopCount); SetPosMS(m_nPosBeforeReset); if (m_bActive) FillBuffers(); diff --git a/src/audio/oal/stream.h b/src/audio/oal/stream.h index bcbc5e54..b3e96809 100644 --- a/src/audio/oal/stream.h +++ b/src/audio/oal/stream.h @@ -69,6 +69,7 @@ class CStream uint32 m_nVolume; uint8 m_nPan; uint32 m_nPosBeforeReset; + int32 m_nLoopCount; IDecoder *m_pSoundFile; @@ -103,6 +104,8 @@ public: void Start(); void Stop(); void Update(void); + void SetLoopCount(int32); + void ProviderInit(); void ProviderTerm(); diff --git a/src/audio/sampman_oal.cpp b/src/audio/sampman_oal.cpp index 0d06098d..2091fb05 100644 --- a/src/audio/sampman_oal.cpp +++ b/src/audio/sampman_oal.cpp @@ -46,7 +46,6 @@ //TODO: fix eax3 reverb //TODO: max channels -//TODO: loop count cSampleManager SampleManager; bool _bSampmanInitialised = false; @@ -1695,7 +1694,7 @@ cSampleManager::PreloadStreamedFile(uint32 nFile, uint8 nStream) ASSERT(stream != NULL); aStream[nStream] = stream; - if ( !stream->IsOpened() ) + if ( !stream->Setup() ) { delete stream; aStream[nStream] = NULL; @@ -1725,7 +1724,7 @@ cSampleManager::StartPreloadedStreamedFile(uint8 nStream) if ( stream ) { - if ( stream->Setup() ) + if ( stream->IsOpened() ) { stream->Start(); } @@ -1771,13 +1770,13 @@ cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = stream; - if (stream->IsOpened()) { - if (stream->Setup()) { - if (position != 0) - stream->SetPosMS(position); + if (stream->Setup()) { + stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1); + nStreamLoopedFlag[nStream] = true; + if (position != 0) + stream->SetPosMS(position); - stream->Start(); - } + stream->Start(); return true; } else { @@ -1798,10 +1797,8 @@ cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); } - if (aStream[nStream]->IsOpened()) { - if (aStream[nStream]->Setup()) { - aStream[nStream]->Start(); - } + if (aStream[nStream]->Setup()) { + aStream[nStream]->Start(); return true; } else { @@ -1827,13 +1824,13 @@ cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = stream; - if (stream->IsOpened()) { - if (stream->Setup()) { - if (position != 0) - stream->SetPosMS(position); + if (stream->Setup()) { + stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1); + nStreamLoopedFlag[nStream] = true; + if (position != 0) + stream->SetPosMS(position); - stream->Start(); - } + stream->Start(); return true; } else { @@ -1854,13 +1851,11 @@ cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = new CStream(filename, ALStreamSources[nStream], ALStreamBuffers[nStream]); } - if (aStream[nStream]->IsOpened()) { - if (aStream[nStream]->Setup()) { - if (position != 0) - aStream[nStream]->SetPosMS(position); + if (aStream[nStream]->Setup()) { + if (position != 0) + aStream[nStream]->SetPosMS(position); - aStream[nStream]->Start(); - } + aStream[nStream]->Start(); _bIsMp3Active = true; return true; @@ -1884,13 +1879,13 @@ cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream) aStream[nStream] = stream; - if ( stream->IsOpened() ) { - if ( stream->Setup() ) { - if (position != 0) - stream->SetPosMS(position); + if ( stream->Setup() ) { + stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1); + nStreamLoopedFlag[nStream] = true; + if (position != 0) + stream->SetPosMS(position); - stream->Start(); - } + stream->Start(); return true; } else { @@ -2001,6 +1996,12 @@ cSampleManager::Service(void) if ( stream ) stream->Update(); } + int refCount = CChannel::channelsThatNeedService; + for ( int32 i = 0; refCount && i < MAXCHANNELS+MAX2DCHANNELS; i++ ) + { + if ( aChannel[i].Update() ) + refCount--; + } } bool diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 16a70697..4eae64b7 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -5591,7 +5591,7 @@ CMenuManager::DrawQuitGameScreen(void) if (splash == nil) splash = LoadSplash("OUTRO"); - m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(MENU_X(28.0f), MENU_Y(8.0f), MENU_X(157.0f), MENU_Y(138.0f)), CRGBA(255, 255, 255, 255 - alpha)); + m_aFrontEndSprites[MENUSPRITE_VCLOGO].Draw(CRect(SCREEN_STRETCH_X(28.0f), MENU_Y(8.0f), SCREEN_STRETCH_X(27.0f) + MENU_X(130.f), MENU_Y(138.0f)), CRGBA(255, 255, 255, 255 - alpha)); // Or we can see menu background from sides #ifdef ASPECT_RATIO_SCALE From 1ffa9bb30f0e8fc16266f0f5fffeecf84dbff883 Mon Sep 17 00:00:00 2001 From: IlDucci Date: Wed, 3 Feb 2021 19:41:17 +0100 Subject: [PATCH 036/113] Adding strings to re3's GXT, recompiling GXT files Contains the same new elements as #1017 --- gamefiles/TEXT/french.gxt | Bin 467752 -> 467876 bytes gamefiles/TEXT/german.gxt | Bin 459466 -> 459590 bytes gamefiles/TEXT/italian.gxt | Bin 456762 -> 456886 bytes gamefiles/TEXT/spanish.gxt | Bin 454498 -> 454562 bytes utils/gxt/french.txt | 14 ++++++++++++++ utils/gxt/german.txt | 14 ++++++++++++++ utils/gxt/italian.txt | 14 ++++++++++++++ utils/gxt/spanish.txt | 6 ++++++ 8 files changed, 48 insertions(+) diff --git a/gamefiles/TEXT/french.gxt b/gamefiles/TEXT/french.gxt index cff9f3dcb9367e017e435eb346b13601ebbfdd2f..bd9c658b68eb908a2592a174374975bf139222db 100644 GIT binary patch delta 1097 zcmZ2+OlHY(nF%uWGxV4l9D{>B{R|lxZWuw?MhpyROrUII28I-CDBFaAVTKEoZOXt< zFsLBz`zi29l|zZU|{%hAHp_fU|`62&CKBB z8xapuGvPBcgOk5wh*M}JL&6tk24}|ru=tXnAa)Q)nBfa&Jqv@gV^Dx&kRbz$APa-D ze}J=N5CcPsFo+%M7Xk_uF(})Jfx$+Vg~2)0$r0oO8v`iYh=JjYJ(O+Cz@Xs=Wt%WC zWJIzsxOw_H`nWPMXyk&}L9QV|-V9eJvoN^3`nd+xI~p>4nFZxI8Zq#!hOvzqR&0l{ zO&D%mhp|l=GG4MUcsP23+{SR{2ZRj@i4-OK8Jg8Ug67`7O*GI+a!J zeS$pQ88nWvG6Z;d`WP}W)H7^33*mr#pmB|rA;2>#%8`MAVa`KVh5-K{P)IZEcn4vF z)RZu>fyF_-RN#ZKO&Ay$4ydv*1O)kmL*<1Tgbh-^zzxC%sh99$V+e9|b`1tODVdES z$hqFb)yLD2;Yucm6X4_LYRJ%%3u1$m88S2!urUPrJ9~o?)Pf=i8)T?V3xo|ebOIYg zuxpSzNR7-92pgp4&p8Miq-M17i9E_#U;&?aFUJ6e8Ynx! z--n?O$_@$*-hABRsRQG-=CzgWYbzPIudQUt-J$ kh#{0Am?4g?Yf}w0928NC}DBGBU;Z8o3ZNk7%Qv+fL`Gf4bF(1sX_xCemVCY!^ z=J@-8G;D{mO&Ay=4nWza3=B)oGc!1Odb=7jFfd%X24Nd9Ffi2Ihp>$q7#QBXVrFpi zjfe-S5&6u_;NWygR^4*SX|>Lh#dqHW~kt-XJK%53<_`zGGyowU}13f z4{&x2Vqkb71Y(E!g@8gu49YfQU^t+{!r&b0c{4;zW?^u5^>YoXcQjnUZ!`Ma)40SNJF@wND7~6zFVFN3JucxE0XS^Z9jeV>PzP=1#&~cEJ!9UE= zC&<&CVa*X%h5!#wA43L)dIpQL5Dv%(Yp${~1b9Y8IWjOXC_H3k2=EUAg*1cBI|v)3 z<_9AiSRCZbCA<)}2?GOziz*vKK#)H;RC3H9Y>;{tHwYV~evU62Ly)7hYcK-?LrW4H zLy&X5hpUgLAwxtah!f!B=W58nkqcsjlo>Lx6tFP_`8#`q5|m02gbgxuK{JF6Hng9O zA=ov@9i(Q#VF(+frr{if4N_xpgN-4?F~Sq1=D;rq+c`9ZAw!pk9V`*ey7>_EGL6k8Ite_Re^@+mV9aX1TiJfMl5zXpN~YW`?bGy_ T+o$QVv`^Dx-9Al^jqfV}+#Bed diff --git a/gamefiles/TEXT/german.gxt b/gamefiles/TEXT/german.gxt index a418a5bceedb400673a55a14855ac64188a83afe..3dbcb5bac7cd00cfefef82a984d1e446426cc19a 100644 GIT binary patch delta 1120 zcmX@rDs!w&W`az;hbS|HV{ovipCJRo6iF!Ch=JjX43urmz~G_`Wt%WC+|Y%xO&J&@ zteF{{9R0k#3>g?4?4fKU28KCaP_{7xLqi;tZNk7%lLcZ2`Gf3|=m4|p{r!v>7}iVx zbNu~`85m3!K-ne?3^FUAY*Pk?1KXGxoIJf<4H+014(x@njTjghz8rhL%}Q< z+k`=87mRJnka32E!NbuLqEf#HNSD}%Qy*uxApW~>a}p3dIEAt4M;>{%In z9K$1BgA5sNxWL#(3>z|FY-5I=P8i#Sfnf$KgRiHfuV=g=L&`E%247zWF!-~AmBByE z(I?2$o#D%BR)zo%Pai`DhI)n{TOb^e4^Hf5WeD($igILNVAykll_9`C2o%x`Z>~Yu zAT={yLf9Z*I(&h!O&Ay$Qn=U{0)qU(p|V2?!Un0Iq6uMx)PFEwV+e9|b`54=VDNEa zV+eAt_i**`G-NRF25|y>{9FwgSo}b2kTOFCn?N>(Ab)3XP=d+{fv`b_E=hy1L56N9 zWMc?+4RQym*|P+~2C3Py9>NBx(b&nx5aJl&3089l!gdY~VOXQ{7QzX4G-QbQ0b?66 zB>aJ~jTu<}voVBtyGGhW=I<7F?V0T6G+(P|zgEGx{aOXnm)V|P42}!|42}$b44w?Z49*N5 z3=9kb4E_v0C?Y`&p$x$c!ANR?7#tZ~7(5yL859^CL9*?~MVQ-o zte6>`9R0k#3>g@X*g@Gw3=9fhP_{7x14|r~ZNk97kOg7~`Gf45(++0W`}-L&Fc?e# zbNu~`85nlVhq6r=7#1vtvP~HnT(&VYIC*-z8Zt02xa@_njTjghDvmHq+yk+LK*9_eAL_xJ0LLIhhBM!p8JztC zoE?K07+8LR*r9$Qh71e^f1zw628JcvEDX+}PL3cSoDqYvjTjhs)Szr*1_lumDBFaA zA;O-8!Ohdp(Z`j6K_?i*4ss0%@@D8LVPSB0^>YoXcQj=9Pz~ic8Zj{R!q~Fnwp z3G!!PVDOPW$dDn%1;#dFFv)1i4f5rY&k!~!ZN1=RV+aWH2ZxG{6od^@FQExxgVdK8urUNVI=colFfd$jW@89) zuJ>^D@ib)E;sxRa`1rXRGIaQY*dS$w3?Qpm;- z>>A__Qsb}$!Un0aSPx-?)U4UT#t`Bd;R#lA2f}s^4Ph|Qc?;o$I~p?F`3_?nF+BMV zV;eJc{9|JX@pg^m*?f@sy~gG}IvzZmH7xJgGku!f%vRaXR>`=Xt&-`>>~=R%=5{wx OmUcH$*5z)ZZ0`X6E9JKU diff --git a/gamefiles/TEXT/italian.gxt b/gamefiles/TEXT/italian.gxt index 95758c8118d5f02a77597e4890e58e545b24d36a..2c2bd3bcfec12e6abbb77d662804402d32df7af9 100644 GIT binary patch delta 1120 zcmdn>L3-Oq=?OCRdt{jz9D{>B{R|lx9w>uFl z7{tJ^;V+0C>K9_jz@Wj%!r<&5>K9_fz>vVt!r&b0BAlHx}Zw7%H76x}$Ki8moM?(gVW+=zeh@oW?jBU)2 zFb~EyVK}h|#x`Z>Img1_;pho+8-vYV2pbd<4_-ppppZ!U%);Q|AL8o6z`&sKn}xyC z+0{A7)sSHc3oDo%8p6QvgO`<|-qSB6$e)3M;fWY4gSRW#!wfFktPI|s&fdWxAq;a& zSQ&gA!y{dT3>hX^!q`R(74a~(F@r%PjBUbTGl7-C*VED0Gv1J4%RE*FUtb0=$XLkA z;2-Ab6Xfa6uwV%*Lx6{;k0Ap?J%hkn2nXbYnk}ph0iID&jtmS8KlZUQ1o#JmLYl$i z41^6*^Wz?b4f3VQD+t?!fq}t-fsG*`$R8Xk27(YaNPU4kgbh-^LXC|f$kEv~7~~{t zHijVQdJk70PeTS7ClDvV$IsP};ejiN4N_*vFvo+9A;{m^+mL~Q;fxoA4Kg$!2Eqmz z>XFXI5bPS{4pMVsCWH-A^I!>t4N}vvj*TJ2F~Sq1#^(Zr?Hn4y;Gz2n!U=aYWQchS zV;eE#e1x%$83ewtF@$)#M(UJpKE%9FgL~CtCI&ZG$9Okizs>bJi9E^`U;&?aFUJ6e zJ}5iD--lrylpPcry!pPxQwPQ)%||QSk5)2nKU&FDz1Y*8!IQy}A%G!(!Jom8!IdGH z!Igml%=2MzWN>D1W&ov(AcjzeV1{5Q+mXSA!IQzCL4hHdA%MY^!H*$?!Li*|mbu+l QmZjZRmUX+WEZg5(0D9>E&;S4c delta 998 zcmdn?QF_-0=?OCR4zkP)j={m6eufMTDT+|G5d%YyGL&u1z`&seWt%WCgcw8FrVI=( zY?&FH9R0k#3>g?WoS7+R)+ zIsSge3=9jFK-ne?3~Sav*`^E(HoKV_oIJf<4H+013=ToqMhpxL9j72{V+IC>C0Cgl zoO~nVL25qSWoB^lcMNd~jbzw!kD0;QF#s%H@fgGo0tqw7e5nU>0vv-38Ls?dW^nco zaCQu0U@-X$Vu$*L7&0)dVPIi!_7C+7F=AkN!pFkk9O~o<^1&A=DBFmE;f5xZZOp*1 z#T?2uVPNQSVqtLe^mFuaWneG~1F?f#LxQ{+rc|>qxV!qf2Gu(nGW0Y-IgUmQ9Ft&d zV}>VlVQdoypFJ?PDTBZ{76uPTPmtRf4%~sTK_QXy62b=9odk{9rmpfiU*d`1N414~wG6V$qgF|JD02`PMQvXE`!Un0=QDb8Wa&&eL zW?*1wv0`Hga<2Dq_3<=hSl|fa1o-&58ZxA~g4iHsh71ZGYz#sE&fcH|72pM7gABbA z4Pk=}J(I@95bPS{4pQSY6T$|mNm&A6gVeCBV`B($jPL}hxo{rBb`A|;IHUUz!U=aY zWO(of#x`R3@Bzj)W|;DsjUmL_HS$mC=0nW;G&c9>B=Bq&uzcdcSke5ovi)l%J diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index ccab70478195786890c99f02443d3d1c3c424895..60012324f28785ce6f1505e2bb37f099eb606a7b 100644 GIT binary patch delta 1059 zcmaEKPkPaP=?OCRBErlJj={m6eufMTF5*zO5d%Yl6qIeuz`&pgWt%WCJkf%(O&J(^ z%$OOR9R0k#3>g@XSV7rF3=BDLP_{7x14lHJZNk71kPc!8`Gf3w(FSJM`}-L&F#PBP zbNu~`85nBjLD?n@411PB*`^E(Gqx}@IC*-z8Zt02bnJn!jTjgh8je8NAa|OaXJ&Bn zjfe-S*>atk!O7n-#3?kAA>alxgR^4*SUlz~h#dqHW_a?p9?S`F3^HWc@P(Pd*+0P9 zF^GZT%Qp}^)Gx%4fnm-sDBFmE!G?o{!8z2)5#$3NQ7GGpfx$xs$~I?hO&Az_ zY*`rGJpCMfTp1Wj0zvE`*N`A@28Kcw26tCK*PwbwLk5WoD96!=VMjZRZOp(j1;#dE zkk|ran=;rOV`1=c^aQz$!Q(1~4GM{zM-VnBB<8$kVes$|arI$fV5s=a!rKx>1 z$l&l7!VV2#VDR8#WvKV`3kmXPU|={Q#LD393idF=2_04jZ%=3M;E)i85HnT=AII=W z*C0a%6KfdTh@m0@#x`bH(+FdmFceH+W$^WM^!1E4WYC$<%HZqE00u7>vNHIGIr;>7 zx-*C@Wn~EP@boccV5n#KvlhYu`QXYnR)zr2s3=E}gATGX1o#JmLYkrCJcJEW^W+hP z4f3VSI|$o^fq}t-g^eK~$R8XkCqyA^ka`7G2pgo{M2C$b$kEv~n1O*|j{_S+kaN9< ztBwkh48g8J z?jSV>CPLUCH5=wY*dR3vma#E}I7WDa)Cin_u$@Cg7#ehLLO9`$h72Z8U~D6Xh!-%n zF+;#>Hii&y*T|I32bs$?xR1?ZVsLYHjCb?(+ib4$mX~`ESim>l&);veveidh#z)Pf z744!GjN3&knD)<7^7hRz~IObz~IQ>4i<4_U}(Q6#N2*Sh^76a N5bO4fLTnT7007t)^`8I$ delta 997 zcmZ2`u9D{>B{R|lxSj3@hBL)TqDJa{Rf#HAxlx@PmutW>WHf3P& zF=J+Ma`f}|GGt(Av4XOV7#MWiplo9Xh7(axwh04+KstyW zY*`rGJpCMfTp1Wl0zvE`*N`A@h64pG4DPOeu0i#Vh732#p&UmehKhC=+nC|VWEk6o z;l^ed+mzwYQ5FUdM^BL37&xv%*r1Tmc?4mD+z|7cg~7u=#MOs^fx+T43xlV#t8)-2 z?EXU7p&<+m99*mn^`3qqLH-O33>`wO4BoC_4>NS=urhdiI(r9)gfNJhu`>8LhDW*v z88Upag0YPlED~UBV}_hY7~6!wU;-~$Y7&;QF@!iqc!JbiI1XVuhlVgX=-h;G!W|76zC4DpjTj_ez}UtN z0 Date: Wed, 3 Feb 2021 20:28:34 +0100 Subject: [PATCH 037/113] add gamefiles and dlls to premake workflows --- .github/workflows/reVC_msvc_amd64.yml | 14 +++++++++++--- .github/workflows/reVC_msvc_x86.yml | 15 ++++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/.github/workflows/reVC_msvc_amd64.yml b/.github/workflows/reVC_msvc_amd64.yml index 71e0ff1d..49a266b7 100644 --- a/.github/workflows/reVC_msvc_amd64.yml +++ b/.github/workflows/reVC_msvc_amd64.yml @@ -48,14 +48,22 @@ jobs: - name: Build run: | msbuild -m build/reVC.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}} - - name: Pack artifacts + # - name: Pack artifacts + # run: | + # 7z a reVC_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* + - name: Move binaries to gamefiles run: | - 7z a reVC_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* + mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.exe ./gamefiles/ + mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.pdb ./gamefiles/ + - name: Move dynamic dependencies to gamefiles + run: | + mv ./vendor/mpg123/dist/Win64/libmpg123-0.dll ./gamefiles/ + mv ./vendor/openal-soft/dist/Win64/OpenAL32.dll ./gamefiles/ - name: Upload artifact to actions uses: actions/upload-artifact@v2 with: name: reVC_${{matrix.buildtype}}_${{matrix.platform}} - path: ./bin/${{matrix.platform}}/${{matrix.buildtype}} + path: ./gamefiles/* # - name: Upload artifact to Bintray # uses: hpcsc/upload-bintray-docker-action@v1 # with: diff --git a/.github/workflows/reVC_msvc_x86.yml b/.github/workflows/reVC_msvc_x86.yml index f7484ec2..21b0dda9 100644 --- a/.github/workflows/reVC_msvc_x86.yml +++ b/.github/workflows/reVC_msvc_x86.yml @@ -48,14 +48,23 @@ jobs: - name: Build run: | msbuild -m build/reVC.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}} - - name: Pack artifacts + # - name: Pack artifacts + # run: | + # 7z a reVC_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* + - name: Move binaries to gamefiles run: | - 7z a reVC_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/* + mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.exe ./gamefiles/ + mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.pdb ./gamefiles/ + - if: contains(matrix.platform, 'oal') + name: Move dynamic dependencies to gamefiles + run: | + mv ./vendor/mpg123/dist/Win32/libmpg123-0.dll ./gamefiles/ + mv ./vendor/openal-soft/dist/Win32/OpenAL32.dll ./gamefiles/ - name: Upload artifact to actions uses: actions/upload-artifact@v2 with: name: reVC_${{matrix.buildtype}}_${{matrix.platform}} - path: reVC_${{matrix.buildtype}}_${{matrix.platform}}.zip + path: ./gamefiles/* # - name: Upload artifact to Bintray # uses: hpcsc/upload-bintray-docker-action@v1 # with: From ca65c764197bcd065f101cdf7da7c48b286c8208 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Wed, 3 Feb 2021 15:35:06 +0300 Subject: [PATCH 038/113] fix --- src/control/AutoPilot.cpp | 8 ++++---- src/control/AutoPilot.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/control/AutoPilot.cpp b/src/control/AutoPilot.cpp index c956a6f1..d3de6ac2 100644 --- a/src/control/AutoPilot.cpp +++ b/src/control/AutoPilot.cpp @@ -52,8 +52,8 @@ void CAutoPilot::Save(uint8*& buf) WriteSaveBuf(buf, m_nCurrentRouteNode); WriteSaveBuf(buf, m_nNextRouteNode); WriteSaveBuf(buf, m_nPrevRouteNode); - WriteSaveBuf(buf, m_nTimeEnteredCurve); - WriteSaveBuf(buf, m_nTimeToSpendOnCurrentCurve); + WriteSaveBuf(buf, m_nTimeEnteredCurve); + WriteSaveBuf(buf, m_nTimeToSpendOnCurrentCurve); WriteSaveBuf(buf, m_nCurrentPathNodeInfo); WriteSaveBuf(buf, m_nNextPathNodeInfo); WriteSaveBuf(buf, m_nPreviousPathNodeInfo); @@ -95,8 +95,8 @@ void CAutoPilot::Load(uint8*& buf) m_nCurrentRouteNode = ReadSaveBuf(buf); m_nNextRouteNode = ReadSaveBuf(buf); m_nPrevRouteNode = ReadSaveBuf(buf); - m_nTimeEnteredCurve = ReadSaveBuf(buf); - m_nTimeToSpendOnCurrentCurve = ReadSaveBuf(buf); + m_nTimeEnteredCurve = ReadSaveBuf(buf); + m_nTimeToSpendOnCurrentCurve = ReadSaveBuf(buf); m_nCurrentPathNodeInfo = ReadSaveBuf(buf); m_nNextPathNodeInfo = ReadSaveBuf(buf); m_nPreviousPathNodeInfo = ReadSaveBuf(buf); diff --git a/src/control/AutoPilot.h b/src/control/AutoPilot.h index aa14ccdd..ec3bb8d8 100644 --- a/src/control/AutoPilot.h +++ b/src/control/AutoPilot.h @@ -64,8 +64,8 @@ public: int32 m_nCurrentRouteNode; int32 m_nNextRouteNode; int32 m_nPrevRouteNode; - uint32 m_nTimeEnteredCurve; - uint32 m_nTimeToSpendOnCurrentCurve; + int32 m_nTimeEnteredCurve; + int32 m_nTimeToSpendOnCurrentCurve; uint32 m_nCurrentPathNodeInfo; uint32 m_nNextPathNodeInfo; uint32 m_nPreviousPathNodeInfo; From ca48ebcb6e22b17e217afc8661c572f83827b83d Mon Sep 17 00:00:00 2001 From: erorcun Date: Wed, 3 Feb 2021 23:03:00 +0300 Subject: [PATCH 039/113] MP3 player fixes --- src/audio/sampman_oal.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/audio/sampman_oal.cpp b/src/audio/sampman_oal.cpp index 2091fb05..ae4b1cbb 100644 --- a/src/audio/sampman_oal.cpp +++ b/src/audio/sampman_oal.cpp @@ -1908,6 +1908,9 @@ cSampleManager::StopStreamedFile(uint8 nStream) { delete stream; aStream[nStream] = NULL; + + if ( nStream == 0 ) + _bIsMp3Active = false; } } @@ -1920,7 +1923,21 @@ cSampleManager::GetStreamedFilePosition(uint8 nStream) if ( stream ) { - return stream->GetPosMS(); + if ( _bIsMp3Active ) + { + tMP3Entry *mp3 = _GetMP3EntryByIndex(_CurMP3Index); + + if ( mp3 != NULL ) + { + return stream->GetPosMS() + mp3->nTrackStreamPos; + } + else + return 0; + } + else + { + return stream->GetPosMS(); + } } return 0; From bba01a42e10de9a2a30acdfe96610482cae3ef87 Mon Sep 17 00:00:00 2001 From: withmorten Date: Wed, 3 Feb 2021 21:40:04 +0100 Subject: [PATCH 040/113] sync readme with master --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a51bc65c..f69c8512 100644 --- a/README.md +++ b/README.md @@ -13,27 +13,69 @@ The aim of this project is to reverse GTA Vice City for PC. - (Optional) If you want to use optional features, copy the files in /gamefiles folder to your game root folder. - Move reVC.exe to GTA VC directory and run it. -## Preparing the environment for building +## Latest standalone executables to download -You may want to point GTA_VC_RE_DIR environment variable to GTA VC root folder if you want executable to be moved there via post-build script. +(Put content of selected archive into gamedir) -- For Linux, proceed: [Building on Linux](https://github.com/GTAmodding/re3/wiki/Building-on-Linux) -- For FreeBSD, proceed: [Building on FreeBSD](https://github.com/GTAmodding/re3/wiki/Building-on-FreeBSD) -- For Windows, assuming you have Visual Studio: - - Clone the repo using the argument `--recursive`. - - Run one of the `premake-vsXXXX.cmd` variants on root folder. - - Open the project via Visual Studio +- [Windows D3D9 MSS 32bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_x86/miami/reVC_Release_win-x86-librw_d3d9-mss.zip) +- [Windows D3D9 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_d3d9-oal.zip) +- [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_gl3_glfw-oal.zip) +- [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/ubuntu-latest-gl3.zip) +- [MacOS 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/macos-latest-gl3.zip) + +## Building from Source + +When using premake, you may want to point GTA_VC_RE_DIR environment variable to GTA Vice City root folder, if you want executable to be moved there via post-build script. + +
Linux Premake + +For Linux using premake, proceed: [Building on Linux](https://github.com/GTAmodding/re3/wiki/Building-on-Linux) + +
+ +
Linux Conan + +Obtain source code. +``` +git clone https://github.com/GTAmodding/re3.git reVC -b miami +cd reVC +git submodule init +git submodule update --recursive +``` +Install python and conan, and then run build. +``` +conan export vendor/librw librw/master@ +mkdir build +cd build +conan install .. reVC/master@ -if build -o reVC:audio=openal -o librw:platform=gl3 -o librw:gl3_gfxlib=glfw --build missing -s reVC:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo +conan build .. -if build -bf build -pf package +``` +
+ +
FreeBSD + +For FreeBSD using premake, proceed: [Building on FreeBSD](https://github.com/GTAmodding/re3/wiki/Building-on-FreeBSD) + +
+ +
Windows + +Assuming you have Visual Studio: +- Clone the repo using the argument `--recursive`. +- Run one of the `premake-vsXXXX.cmd` variants on root folder. +- Open the project via Visual Studio **If you use 64-bit D3D9**: We don't ship 64-bit Dx9 SDK. You need to download it from Microsoft if you don't have it(although it should come pre-installed after some Windows version) -There are various settings at the very bottom of [config.h](https://github.com/GTAmodding/re3/tree/miami/src/core/config.h), you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across. +**If you choose OpenAL on Windows** You must read [Running OpenAL build on Windows](https://github.com/GTAmodding/re3/wiki/Running-OpenAL-build-on-Windows). +
-> :information_source: **If you choose OpenAL on Windows** You must read [Running OpenAL build on Windows](https://github.com/GTAmodding/re3/wiki/Running-OpenAL-build-on-Windows). +> :information_source: There are various settings in [config.h](https://github.com/GTAmodding/re3/tree/miami/src/core/config.h), you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across. -> :information_source: **Did you notice librw?** reVC uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of reVC, but you also can use LIBRW enviorenment variable to specify path to your own librw. +> :information_source: **Did you notice librw?** reVC uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw. ## Contributing -Please read the [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) Document +Please read the [Coding Style](https://github.com/GTAmodding/re3/blob/miami/CODING_STYLE.md) Document ### Unreversed / incomplete classes From 1525b105e2d107bd7392a17ed17cac561e0493a1 Mon Sep 17 00:00:00 2001 From: withmorten Date: Wed, 3 Feb 2021 23:26:19 +0100 Subject: [PATCH 041/113] reduce warnings in msvc librw build --- premake5.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/premake5.lua b/premake5.lua index f2e6a71f..f49e024c 100644 --- a/premake5.lua +++ b/premake5.lua @@ -204,6 +204,7 @@ project "librw" architecture "amd64" filter "platforms:win*" + defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" } staticruntime "on" buildoptions { "/Zc:sizedDealloc-" } From 958c828a2c8ec55dbaa9fecb4712a5964d2d7adc Mon Sep 17 00:00:00 2001 From: withmorten Date: Thu, 4 Feb 2021 01:42:42 +0100 Subject: [PATCH 042/113] readme fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f69c8512..84713f99 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Assuming you have Visual Studio: > :information_source: There are various settings in [config.h](https://github.com/GTAmodding/re3/tree/miami/src/core/config.h), you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across. -> :information_source: **Did you notice librw?** reVC uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw. +> :information_source: **Did you notice librw?** reVC uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of reVC, but you also can use LIBRW enviorenment variable to specify path to your own librw. ## Contributing Please read the [Coding Style](https://github.com/GTAmodding/re3/blob/miami/CODING_STYLE.md) Document From 42342745f3e8506be79b4ebc8eb5bfe5982818ba Mon Sep 17 00:00:00 2001 From: withmorten Date: Thu, 4 Feb 2021 18:29:47 +0100 Subject: [PATCH 043/113] CHud::Draw fix --- src/render/Hud.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index ba7d52db..91503917 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -1140,18 +1140,18 @@ void CHud::Draw() if (IntroRect.m_nTextureId >= 0) { CRect rect ( IntroRect.m_sRect.left, - IntroRect.m_sRect.top, + IntroRect.m_sRect.bottom, IntroRect.m_sRect.right, - IntroRect.m_sRect.bottom ); + IntroRect.m_sRect.top ); CTheScripts::ScriptSprites[IntroRect.m_nTextureId].Draw(rect, IntroRect.m_sColor); } else { CRect rect ( IntroRect.m_sRect.left, - IntroRect.m_sRect.top, + IntroRect.m_sRect.bottom, IntroRect.m_sRect.right, - IntroRect.m_sRect.bottom ); + IntroRect.m_sRect.top ); CSprite2d::DrawRect(rect, IntroRect.m_sColor); } From 8553120fdbfd74eb2d1609326acbdd8aaa382bea Mon Sep 17 00:00:00 2001 From: withmorten Date: Thu, 4 Feb 2021 19:47:47 +0100 Subject: [PATCH 044/113] add missing ASCII_STRCMP stuff --- src/core/config.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/config.h b/src/core/config.h index e75cdfb0..cc82f8d6 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -251,6 +251,12 @@ enum Config { #define FIX_BUGS_64 // Must have fixes to be able to run 64 bit build #endif +#define ASCII_STRCMP // use faster ascii str comparisons + +#if !defined _WIN32 || defined __MWERKS__ || defined __MINGW32__ || defined VANILLA_DEFINES +#undef ASCII_STRCMP +#endif + // Just debug menu entries #ifdef DEBUGMENU #define RELOADABLES // some debug menu options to reload TXD files From a78212ea800fe1919d5380beb25514e3887bcdea Mon Sep 17 00:00:00 2001 From: withmorten Date: Thu, 4 Feb 2021 23:43:04 +0100 Subject: [PATCH 045/113] fix MASTER crashes --- src/core/common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/common.h b/src/core/common.h index 75ba8863..d39531cc 100644 --- a/src/core/common.h +++ b/src/core/common.h @@ -355,7 +355,7 @@ __inline__ void TRACE(char *f, ...) { } // this is re3 only, and so the function #ifndef MASTER #define assert(_Expression) (void)( (!!(_Expression)) || (re3_assert(#_Expression, __FILE__, __LINE__, __FUNCTION__), 0) ) #else -#define assert(_Expression) +#define assert(_Expression) (_Expression) #endif #define ASSERT assert From 09de511c37c32e13af3f72ded7f0f9e19f395ae2 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Fri, 5 Feb 2021 11:31:54 +0300 Subject: [PATCH 046/113] fixed plane AI --- src/control/CarCtrl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp index c6d78882..d05d9827 100644 --- a/src/control/CarCtrl.cpp +++ b/src/control/CarCtrl.cpp @@ -2757,7 +2757,7 @@ void CCarCtrl::SteerAIPlaneTowardsTargetCoors(CAutomobile* pPlane) up.Normalise(); CVector forward(Cos(pPlane->m_fOrientation), Sin(pPlane->m_fOrientation), fForwardZ); forward.Normalise(); - CVector right = CrossProduct(forward, up); + CVector right = CrossProduct(up, forward); right.z -= 5.0f * pPlane->m_fPlaneSteer; right.Normalise(); up = CrossProduct(forward, right); From 9125e604b9225a9cb5efd4a615f10b3c73c1d104 Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 5 Feb 2021 10:58:01 +0100 Subject: [PATCH 047/113] fix generic.txd crash --- src/core/Game.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/core/Game.cpp b/src/core/Game.cpp index ed9d67f4..43bd3d11 100644 --- a/src/core/Game.cpp +++ b/src/core/Game.cpp @@ -381,6 +381,11 @@ bool CGame::Initialise(const char* datFile) CTxdStore::Create(gameTxdSlot); CTxdStore::AddRef(gameTxdSlot); +#ifdef EXTENDED_PIPELINES + // for generic fallback + CustomPipes::SetTxdFindCallback(); +#endif + LoadingScreen("Loading the Game", "Loading particles", nil); int particleTxdSlot = CTxdStore::AddTxdSlot("particle"); CTxdStore::LoadTxd(particleTxdSlot, "MODELS/PARTICLE.TXD"); @@ -440,10 +445,7 @@ bool CGame::Initialise(const char* datFile) CFileLoader::LoadLevel("DATA\\DEFAULT.DAT"); CFileLoader::LoadLevel(datFile); -#ifdef EXTENDED_PIPELINES - // for generic fallback - CustomPipes::SetTxdFindCallback(); -#endif + LoadingScreen("Loading the Game", "Add Particles", nil); CWorld::AddParticles(); CVehicleModelInfo::LoadVehicleColours(); From 86513cb2c9e74361c35356de78ee5433f67dc3ca Mon Sep 17 00:00:00 2001 From: IlDucci Date: Fri, 5 Feb 2021 12:44:41 +0100 Subject: [PATCH 048/113] [Miami] Updating font widths. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixing widths in SF Arborcrest for the characters ¡, Ñ, ñ, ¿. - Fixing the ¡ character width in Rage font. - Mapped the characters that are being affected by each width size. --- src/render/Font.cpp | 67 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 55 insertions(+), 12 deletions(-) diff --git a/src/render/Font.cpp b/src/render/Font.cpp index 0f5930ee..59ef024a 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -64,20 +64,63 @@ int16 CFont::Size[LANGSET_MAX][MAX_FONTS][210] = { int16 CFont::Size[MAX_FONTS][210] = { #endif { - 12, 9, 22, 17, 19, 19, 25, 4, 33, 33, 25, 35, 11, 10, 6, 33, 18, 10, 17, 17, 17, 17, 17, 15, 12, 16, 5, 30, 30, 30, 30, 30, 12, 16, 19, - 16, 19, 18, 18, 17, 22, 11, 17, 18, 18, 30, 22, 19, 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 19, 19, 12, 14, 11, 11, 16, 11, - 12, 14, 14, 10, 13, 12, 10, 19, 18, 12, 16, 13, 13, 11, 12, 15, 12, 15, 13, 12, 12, 37, 33, 37, 35, 37, 16, 16, 16, 16, 33, 17, 18, 18, 18, - 18, 11, 11, 11, 11, 19, 19, 19, 19, 19, 19, 19, 19, 15, 14, 14, 14, 14, 20, 14, 11, 11, 11, 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, - 15, 24, 18, 21, 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 16 + //FONT2 EFIGS + //SPC,!, $, %, &, ', [, ], +, , -, ., + 12, 9, 22, 17, 19, 19, 25, 4, 33, 33, 25, 35, 11, 10, 6, 33, + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ??, + 18, 10, 17, 17, 17, 17, 17, 15, 12, 16, 5, 30, 30, 30, 30, 30, + // A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, + 12, 16, 19, 16, 19, 18, 18, 17, 22, 11, 17, 18, 18, 30, 22, 19, + //P, Q, R, S, T, U, V, W, X, Y, Z, ??, ??, ??, ¡, \, + 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 10, 19, + //??,a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, + 12, 14, 11, 11, 16, 11, 12, 14, 14, 10, 13, 12, 10, 19, 18, 12, + //p, q, r, s, t, u, v, w, x, y, z, ??, ??, ??, ??, ??, + 16, 13, 13, 11, 12, 15, 12, 15, 13, 12, 12, 37, 33, 37, 35, 37, + //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, + 16, 16, 16, 16, 33, 17, 18, 18, 18, 18, 11, 11, 11, 11, 19, 19, + //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, + 19, 19, 19, 19, 19, 19, 15, 14, 14, 14, 14, 20, 14, 11, 11, 11, + //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, + 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, 15, 22, 18, 21, + //i,BLANKS + 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + // ?? + 19, 16 }, { - 15, 7, 31, 25, 20, 23, 21, 7, 11, 10, 26, 14, 6, 12, 6, 26, 20, 7, 20, 20, 21, 20, 20, 19, 21, 20, 8, 30, 24, 30, 24, 19, 20, 22, 22, 21, 22, 18, 18, 22, - 22, 9, 14, 21, 18, 27, 21, 24, 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 10, 19, 10, 17, 17, 16, 17, 17, 11, 17, 17, 7, 7, 18, 7, 25, 17, - 17, 17, 17, 11, 17, 11, 17, 18, 25, 19, 18, 17, 28, 26, 20, 15, 15, 20, 20, 20, 20, 29, 22, 19, 19, 19, 19, 9, 9, 9, 9, 23, 23, 23, 23, 24, 24, 24, 24, - 20, 19, 17, 17, 17, 30, 16, 17, 17, 17, 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 19, 20, 20, 20, 18, 19, 19, 21, 19, 19, 19, 19, 19, 16, 19, - 19, 19, 20, 19, 16, 19, 19, 9, 19, 20, 14, 29, 19, 19, 19, 19, 19, 19, 21, 19, 20, 32, 20, 19, 19, 19, 19, 19, 19, 29, 19, 19, 19, 19, 19, 9, 9, 9, 9, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 21, 21, 10, 9, 10, 20 + //FONT1 EFIGS + //!2,!, *I,(R), $, %, &, ', [, ], *I, +, , -, ., *I, + 15, 7, 31, 25, 20, 23, 21, 7, 11, 10, 26, 14, 6, 12, 6, 26, + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, *I, *I, *I, *I, ?, + 20, 7, 20, 20, 21, 20, 20, 19, 21, 20, 8, 30, 24, 30, 24, 19, + //TM,A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, + 20, 22, 22, 21, 22, 18, 18, 22, 22, 9, 14, 21, 18, 27, 21, 24, + //P, Q, R, S, T, U, V, W, X, Y, Z, *I, \, *I, ¡, °, + 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 7, 19, + //(C),a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, + 10, 17, 17, 16, 17, 17, 11, 17, 17, 7, 7, 18, 7, 25, 17, 17, + //p, q, r, s, t, u, v, w, x, y, z, *I, *I, $2, (2, )2, + 17, 17, 11, 17, 11, 17, 18, 25, 19, 18, 17, 28, 26, 20, 15, 15, + //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, + 20, 20, 20, 20, 29, 22, 19, 19, 19, 19, 9, 9, 9, 9, 23, 23, + //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, + 23, 23, 24, 24, 24, 24, 20, 19, 17, 17, 17, 30, 16, 17, 17, 17, + //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, + 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 21, 17, 19, + //02,12,22, 32, 42, 52, 62, 72, 82, 92, :2, A2, B2, C2, D2, E2, + 20, 18, 19, 19, 21, 19, 19, 19, 19, 19, 16, 19, 19, 19, 20, 19, + //F2,G2,H2, I2, J2, K2, L2, M2, N2, O2, P2, Q2, R2, S2, T2, U2, + 16, 19, 19, 9, 19, 20, 14, 29, 19, 19, 19, 19, 19, 19, 21, 19, + //V2,W2,X2, Y2, Z2, À2, Á2, Â2, Ä2, Æ2, Ç2, È2, É2, Ê2, Ë2, Ì2, + 20, 32, 20, 19, 19, 19, 19, 19, 19, 29, 19, 19, 19, 19, 19, 9, + //Í2,Î2,Ï2, Ò2, Ó2, Ô2, Ö2, Ù2, Ú2, Û2, Ü2, ß2, Ñ2, ¿2, '2, .2, + 9, 9, 9, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 10, 9, + //??,?? + 10, 20 } #ifdef MORE_LANGUAGES }, From 102d105e0a50f829c6085a2e95082aedb7727b41 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Fri, 5 Feb 2021 14:45:03 +0300 Subject: [PATCH 049/113] fix --- src/control/Script7.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/control/Script7.cpp b/src/control/Script7.cpp index 34a364a7..71099cc4 100644 --- a/src/control/Script7.cpp +++ b/src/control/Script7.cpp @@ -431,12 +431,12 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); script_assert(pPed); if (ScriptParams[1]) { - pPed->bIsDucking = true; + pPed->bCrouchWhenShooting = true; pPed->SetDuck(ScriptParams[2], true); } else { pPed->ClearDuck(true); - pPed->bIsDucking = false; + pPed->bCrouchWhenShooting = false; } return 0; } From b864103976332411a8c723e74bba431b8089e092 Mon Sep 17 00:00:00 2001 From: IlDucci Date: Fri, 5 Feb 2021 13:53:24 +0100 Subject: [PATCH 050/113] Restoring original sorting. --- src/render/Font.cpp | 78 +++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 53 deletions(-) diff --git a/src/render/Font.cpp b/src/render/Font.cpp index 59ef024a..86fe4a56 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -65,63 +65,35 @@ int16 CFont::Size[MAX_FONTS][210] = { #endif { //FONT2 EFIGS - //SPC,!, $, %, &, ', [, ], +, , -, ., - 12, 9, 22, 17, 19, 19, 25, 4, 33, 33, 25, 35, 11, 10, 6, 33, - //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ??, - 18, 10, 17, 17, 17, 17, 17, 15, 12, 16, 5, 30, 30, 30, 30, 30, - // A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, - 12, 16, 19, 16, 19, 18, 18, 17, 22, 11, 17, 18, 18, 30, 22, 19, - //P, Q, R, S, T, U, V, W, X, Y, Z, ??, ??, ??, ¡, \, - 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 10, 19, - //??,a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, - 12, 14, 11, 11, 16, 11, 12, 14, 14, 10, 13, 12, 10, 19, 18, 12, - //p, q, r, s, t, u, v, w, x, y, z, ??, ??, ??, ??, ??, - 16, 13, 13, 11, 12, 15, 12, 15, 13, 12, 12, 37, 33, 37, 35, 37, - //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, - 16, 16, 16, 16, 33, 17, 18, 18, 18, 18, 11, 11, 11, 11, 19, 19, - //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, - 19, 19, 19, 19, 19, 19, 15, 14, 14, 14, 14, 20, 14, 11, 11, 11, - //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, - 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, 15, 22, 18, 21, - //i,BLANKS - 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - // ?? - 19, 16 + //SPC,!, $, %, &, ', [, ], +, , -, ., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ??, A, B, + 12, 9, 22, 17, 19, 19, 25, 4, 33, 33, 25, 35, 11, 10, 6, 33, 18, 10, 17, 17, 17, 17, 17, 15, 12, 16, 5, 30, 30, 30, 30, 30, 12, 16, 19, + //C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, ??, ??, ??, ¡, \, ??, a, b, c, d, e, + 16, 19, 18, 18, 17, 22, 11, 17, 18, 18, 30, 22, 19, 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 10, 19, 12, 14, 11, 11, 16, 11, + //f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ??, ??, ??, ??, ??, À, Á, Â, Ä, Æ, Ç, È, É, Ê, + 12, 14, 14, 10, 13, 12, 10, 19, 18, 12, 16, 13, 13, 11, 12, 15, 12, 15, 13, 12, 12, 37, 33, 37, 35, 37, 16, 16, 16, 16, 33, 17, 18, 18, 18, + //Ë, Ì, Í, Î, Ï, Ò, Ó, Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, + 18, 11, 11, 11, 11, 19, 19, 19, 19, 19, 19, 19, 19, 15, 14, 14, 14, 14, 20, 14, 11, 11, 11, 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, + //ü, Ñ, ñ, ¿, i, BLANKS + 15, 22, 18, 21, 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + // ??, ?? + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 16 }, { //FONT1 EFIGS - //!2,!, *I,(R), $, %, &, ', [, ], *I, +, , -, ., *I, - 15, 7, 31, 25, 20, 23, 21, 7, 11, 10, 26, 14, 6, 12, 6, 26, - //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, *I, *I, *I, *I, ?, - 20, 7, 20, 20, 21, 20, 20, 19, 21, 20, 8, 30, 24, 30, 24, 19, - //TM,A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, - 20, 22, 22, 21, 22, 18, 18, 22, 22, 9, 14, 21, 18, 27, 21, 24, - //P, Q, R, S, T, U, V, W, X, Y, Z, *I, \, *I, ¡, °, - 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 7, 19, - //(C),a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, - 10, 17, 17, 16, 17, 17, 11, 17, 17, 7, 7, 18, 7, 25, 17, 17, - //p, q, r, s, t, u, v, w, x, y, z, *I, *I, $2, (2, )2, - 17, 17, 11, 17, 11, 17, 18, 25, 19, 18, 17, 28, 26, 20, 15, 15, - //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, - 20, 20, 20, 20, 29, 22, 19, 19, 19, 19, 9, 9, 9, 9, 23, 23, - //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, - 23, 23, 24, 24, 24, 24, 20, 19, 17, 17, 17, 30, 16, 17, 17, 17, - //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, - 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 21, 17, 19, - //02,12,22, 32, 42, 52, 62, 72, 82, 92, :2, A2, B2, C2, D2, E2, - 20, 18, 19, 19, 21, 19, 19, 19, 19, 19, 16, 19, 19, 19, 20, 19, - //F2,G2,H2, I2, J2, K2, L2, M2, N2, O2, P2, Q2, R2, S2, T2, U2, - 16, 19, 19, 9, 19, 20, 14, 29, 19, 19, 19, 19, 19, 19, 21, 19, - //V2,W2,X2, Y2, Z2, À2, Á2, Â2, Ä2, Æ2, Ç2, È2, É2, Ê2, Ë2, Ì2, - 20, 32, 20, 19, 19, 19, 19, 19, 19, 29, 19, 19, 19, 19, 19, 9, - //Í2,Î2,Ï2, Ò2, Ó2, Ô2, Ö2, Ù2, Ú2, Û2, Ü2, ß2, Ñ2, ¿2, '2, .2, - 9, 9, 9, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 10, 9, - //??,?? - 10, 20 + //!2,!, *I,(R), $, %, &, ', [, ], *I, +, , -, ., *I, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, *I, *I, *I, *I, ?, TM, A, B, C, D, E, F, G, + 15, 7, 31, 25, 20, 23, 21, 7, 11, 10, 26, 14, 6, 12, 6, 26, 20, 7, 20, 20, 21, 20, 20, 19, 21, 20, 8, 30, 24, 30, 24, 19, 20, 22, 22, 21, 22, 18, 18, 22, + //H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, *I, \, *I, ¡, °, (C), a, b, c, d, e, f, g, h, i, j, k, l, m, n, + 22, 9, 14, 21, 18, 27, 21, 24, 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 7, 19, 10, 17, 17, 16, 17, 17, 11, 17, 17, 7, 7, 18, 7, 25, 17, + //o, p, q, r, s, t, u, v, w, x, y, z, *I, *I, $2, (2, )2, À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, Ô, Ö, Ù, Ú, Û, Ü, + 17, 17, 17, 11, 17, 11, 17, 18, 25, 19, 18, 17, 28, 26, 20, 15, 15, 20, 20, 20, 20, 29, 22, 19, 19, 19, 19, 9, 9, 9, 9, 23, 23, 23, 23, 24, 24, 24, 24, + //ß, à, á, â, ä, æ, ç, è, é, ê, ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, 02, 12, 22, 32, 42, 52, 62, 72, 82, 92, :2, A2, + 20, 19, 17, 17, 17, 30, 16, 17, 17, 17, 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 21, 17, 19, 20, 18, 19, 19, 21, 19, 19, 19, 19, 19, 16, 19, + //B2,C2,D2, E2, F2, G2, H2, I2, J2, K2, L2, M2, N2, O2, P2, Q2, R2, S2, T2, U2, V2, W2, X2, Y2, Z2, À2, Á2, Â2, Ä2, Æ2, Ç2, È2, É2, Ê2, Ë2, Ì2, Í2, Î2, Ï2, + 19, 19, 20, 19, 16, 19, 19, 9, 19, 20, 14, 29, 19, 19, 19, 19, 19, 19, 21, 19, 20, 32, 20, 19, 19, 19, 19, 19, 19, 29, 19, 19, 19, 19, 19, 9, 9, 9, 9, + //Ò2,Ó2,Ô2, Ö2, Ù2, Ú2, Û2, Ü2, ß2, Ñ2, ¿2, '2, .2, ??,?? + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 10, 9, 10, 20 } + #ifdef MORE_LANGUAGES }, { From 425f360363419bef0c7bed0df5d79798408e6cf0 Mon Sep 17 00:00:00 2001 From: aap Date: Sat, 6 Feb 2021 16:49:52 +0100 Subject: [PATCH 051/113] reorganize shaders; use modulate flag; update librw --- src/extras/custompipes_d3d9.cpp | 31 +++---- src/extras/custompipes_gl.cpp | 34 ++++---- src/extras/postfx.cpp | 12 +-- src/extras/screendroplets.cpp | 6 +- src/extras/shaders/Makefile | 78 ------------------ src/extras/shaders/make_glsl.sh | 9 ++ .../shaders/{make.cmd => make_hlsl.cmd} | 4 +- src/extras/shaders/makeinc_glsl.sh | 6 ++ .../shaders/{makeinc.sh => makeinc_hlsl.sh} | 1 + .../shaders/{ => obj}/colourfilterVC_PS.cso | Bin .../shaders/{ => obj}/colourfilterVC_PS.inc | 0 .../colourfilterVC_frag.inc} | 0 src/extras/shaders/{ => obj}/contrastPS.cso | Bin src/extras/shaders/{ => obj}/contrastPS.inc | 0 .../contrast_frag.inc} | 0 .../shaders/{ => obj}/default_UV2_VS.cso | Bin .../shaders/{ => obj}/default_UV2_VS.inc | 0 .../default_UV2_vert.inc} | 0 .../im2d_UV2_vert.inc} | 0 .../{im2d_gl.inc => obj/im2d_vert.inc} | 0 src/extras/shaders/{ => obj}/neoGloss_PS.cso | Bin src/extras/shaders/{ => obj}/neoGloss_PS.inc | 0 src/extras/shaders/{ => obj}/neoGloss_VS.cso | Bin src/extras/shaders/{ => obj}/neoGloss_VS.inc | 0 .../neoGloss_frag.inc} | 0 .../neoGloss_vert.inc} | 0 .../shaders/{ => obj}/neoRimSkin_VS.cso | Bin .../shaders/{ => obj}/neoRimSkin_VS.inc | 0 .../neoRimSkin_vert.inc} | 0 src/extras/shaders/{ => obj}/neoRim_VS.cso | Bin src/extras/shaders/{ => obj}/neoRim_VS.inc | 0 .../{neoRim_gl.inc => obj/neoRim_vert.inc} | 0 .../shaders/{ => obj}/neoVehicle_PS.cso | Bin .../shaders/{ => obj}/neoVehicle_PS.inc | 0 .../shaders/{ => obj}/neoVehicle_VS.cso | Bin .../shaders/{ => obj}/neoVehicle_VS.inc | 0 .../neoVehicle_frag.inc} | 0 .../neoVehicle_vert.inc} | 0 .../shaders/{ => obj}/neoWorldVC_PS.cso | Bin .../shaders/{ => obj}/neoWorldVC_PS.inc | 0 .../neoWorldVC_frag.inc} | 0 .../shaders/{ => obj}/screenDroplet_PS.cso | Bin .../shaders/{ => obj}/screenDroplet_PS.inc | 0 .../screenDroplet_frag.inc} | 0 .../{simple_fs_gl.inc => obj/simple_frag.inc} | 0 vendor/librw | 2 +- 46 files changed, 64 insertions(+), 119 deletions(-) delete mode 100644 src/extras/shaders/Makefile create mode 100644 src/extras/shaders/make_glsl.sh rename src/extras/shaders/{make.cmd => make_hlsl.cmd} (58%) create mode 100644 src/extras/shaders/makeinc_glsl.sh rename src/extras/shaders/{makeinc.sh => makeinc_hlsl.sh} (93%) rename src/extras/shaders/{ => obj}/colourfilterVC_PS.cso (100%) rename src/extras/shaders/{ => obj}/colourfilterVC_PS.inc (100%) rename src/extras/shaders/{colourfilterVC_fs_gl.inc => obj/colourfilterVC_frag.inc} (100%) rename src/extras/shaders/{ => obj}/contrastPS.cso (100%) rename src/extras/shaders/{ => obj}/contrastPS.inc (100%) rename src/extras/shaders/{contrast_fs_gl.inc => obj/contrast_frag.inc} (100%) rename src/extras/shaders/{ => obj}/default_UV2_VS.cso (100%) rename src/extras/shaders/{ => obj}/default_UV2_VS.inc (100%) rename src/extras/shaders/{default_UV2_gl.inc => obj/default_UV2_vert.inc} (100%) rename src/extras/shaders/{im2d_UV2_gl.inc => obj/im2d_UV2_vert.inc} (100%) rename src/extras/shaders/{im2d_gl.inc => obj/im2d_vert.inc} (100%) rename src/extras/shaders/{ => obj}/neoGloss_PS.cso (100%) rename src/extras/shaders/{ => obj}/neoGloss_PS.inc (100%) rename src/extras/shaders/{ => obj}/neoGloss_VS.cso (100%) rename src/extras/shaders/{ => obj}/neoGloss_VS.inc (100%) rename src/extras/shaders/{neoGloss_fs_gl.inc => obj/neoGloss_frag.inc} (100%) rename src/extras/shaders/{neoGloss_vs_gl.inc => obj/neoGloss_vert.inc} (100%) rename src/extras/shaders/{ => obj}/neoRimSkin_VS.cso (100%) rename src/extras/shaders/{ => obj}/neoRimSkin_VS.inc (100%) rename src/extras/shaders/{neoRimSkin_gl.inc => obj/neoRimSkin_vert.inc} (100%) rename src/extras/shaders/{ => obj}/neoRim_VS.cso (100%) rename src/extras/shaders/{ => obj}/neoRim_VS.inc (100%) rename src/extras/shaders/{neoRim_gl.inc => obj/neoRim_vert.inc} (100%) rename src/extras/shaders/{ => obj}/neoVehicle_PS.cso (100%) rename src/extras/shaders/{ => obj}/neoVehicle_PS.inc (100%) rename src/extras/shaders/{ => obj}/neoVehicle_VS.cso (100%) rename src/extras/shaders/{ => obj}/neoVehicle_VS.inc (100%) rename src/extras/shaders/{neoVehicle_fs_gl.inc => obj/neoVehicle_frag.inc} (100%) rename src/extras/shaders/{neoVehicle_vs_gl.inc => obj/neoVehicle_vert.inc} (100%) rename src/extras/shaders/{ => obj}/neoWorldVC_PS.cso (100%) rename src/extras/shaders/{ => obj}/neoWorldVC_PS.inc (100%) rename src/extras/shaders/{neoWorldVC_fs_gl.inc => obj/neoWorldVC_frag.inc} (100%) rename src/extras/shaders/{ => obj}/screenDroplet_PS.cso (100%) rename src/extras/shaders/{ => obj}/screenDroplet_PS.inc (100%) rename src/extras/shaders/{screenDroplet_fs_gl.inc => obj/screenDroplet_frag.inc} (100%) rename src/extras/shaders/{simple_fs_gl.inc => obj/simple_frag.inc} (100%) diff --git a/src/extras/custompipes_d3d9.cpp b/src/extras/custompipes_d3d9.cpp index d7634e99..3ad824e3 100644 --- a/src/extras/custompipes_d3d9.cpp +++ b/src/extras/custompipes_d3d9.cpp @@ -89,6 +89,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) } int vsBits; + rw::uint32 flags = atomic->geometry->flags; setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); setIndices(header->indexBuffer); setVertexDeclaration(header->vertexDeclaration); @@ -120,7 +121,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) reflProps[3] = m->surfaceProps.specular == 0.0f ? 0.0f : VehicleSpecularity; d3ddevice->SetVertexShaderConstantF(VSLOC_reflProps, reflProps, 1); - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); if(m->texture) d3d::setTexture(0, m->texture); @@ -150,11 +151,11 @@ CreateVehiclePipe(void) fp = ReadTweakValueTable(fp, SpecColor); } -#include "shaders/neoVehicle_VS.inc" +#include "shaders/obj/neoVehicle_VS.inc" neoVehicle_VS = rw::d3d::createVertexShader(neoVehicle_VS_cso); assert(neoVehicle_VS); -#include "shaders/neoVehicle_PS.inc" +#include "shaders/obj/neoVehicle_PS.inc" neoVehicle_PS = rw::d3d::createPixelShader(neoVehicle_PS_cso); assert(neoVehicle_PS); @@ -260,11 +261,11 @@ CreateWorldPipe(void) else ReadTweakValueTable((char*)work_buff, WorldLightmapBlend); -#include "shaders/default_UV2_VS.inc" +#include "shaders/obj/default_UV2_VS.inc" neoWorld_VS = rw::d3d::createVertexShader(default_UV2_VS_cso); assert(neoWorld_VS); -#include "shaders/neoWorldVC_PS.inc" +#include "shaders/obj/neoWorldVC_PS.inc" neoWorldVC_PS = rw::d3d::createPixelShader(neoWorldVC_PS_cso); assert(neoWorldVC_PS); @@ -347,11 +348,11 @@ glossRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) void CreateGlossPipe(void) { -#include "shaders/neoGloss_VS.inc" +#include "shaders/obj/neoGloss_VS.inc" neoGloss_VS = rw::d3d::createVertexShader(neoGloss_VS_cso); assert(neoGloss_VS); -#include "shaders/neoGloss_PS.inc" +#include "shaders/obj/neoGloss_PS.inc" neoGloss_PS = rw::d3d::createPixelShader(neoGloss_PS_cso); assert(neoGloss_PS); @@ -421,6 +422,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) } int vsBits; + rw::uint32 flags = atomic->geometry->flags; setStreamSource(0, header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); setIndices(header->indexBuffer); setVertexDeclaration(header->vertexDeclaration); @@ -438,7 +440,7 @@ rimRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); if(m->texture){ d3d::setTexture(0, m->texture); @@ -464,7 +466,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) } int vsBits; - + rw::uint32 flags = atomic->geometry->flags; setStreamSource(0, (IDirect3DVertexBuffer9*)header->vertexStream[0].vertexBuffer, 0, header->vertexStream[0].stride); setIndices((IDirect3DIndexBuffer9*)header->indexBuffer); @@ -485,7 +487,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::d3d9::InstanceDataHeader *header) SetRenderState(VERTEXALPHA, inst->vertexAlpha || m->color.alpha != 255); - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); if(inst->material->texture){ d3d::setTexture(0, m->texture); @@ -513,11 +515,11 @@ CreateRimLightPipes(void) } -#include "shaders/neoRim_VS.inc" +#include "shaders/obj/neoRim_VS.inc" neoRim_VS = rw::d3d::createVertexShader(neoRim_VS_cso); assert(neoRim_VS); -#include "shaders/neoRimSkin_VS.inc" +#include "shaders/obj/neoRimSkin_VS.inc" neoRimSkin_VS = rw::d3d::createVertexShader(neoRimSkin_VS_cso); assert(neoRimSkin_VS); @@ -611,6 +613,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass) assert(building->instHeader->platform == PLATFORM_D3D9); building->fadeAlpha = 255; building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT); + rw::uint32 flags = atomic->geometry->flags; bool setupDone = false; bool defer = false; @@ -640,7 +643,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass) setupDone = true; } - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); if(m->texture){ d3d::setTexture(0, m->texture); @@ -703,7 +706,7 @@ RenderBlendPass(int pass) rw::RGBA color = m->color; color.alpha = (color.alpha * building->fadeAlpha)/255; - setMaterial(color, m->surfaceProps); + setMaterial(color, m->surfaceProps); // always modulate here if(m->texture){ d3d::setTexture(0, m->texture); diff --git a/src/extras/custompipes_gl.cpp b/src/extras/custompipes_gl.cpp index 8a574579..6cbd0bb7 100644 --- a/src/extras/custompipes_gl.cpp +++ b/src/extras/custompipes_gl.cpp @@ -87,6 +87,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) Material *m; + rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -119,7 +120,7 @@ vehicleRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); setTexture(0, m->texture); @@ -160,8 +161,8 @@ CreateVehiclePipe(void) { -#include "shaders/neoVehicle_fs_gl.inc" -#include "shaders/neoVehicle_vs_gl.inc" +#include "shaders/obj/neoVehicle_frag.inc" +#include "shaders/obj/neoVehicle_vert.inc" const char *vs[] = { shaderDecl, header_vert_src, neoVehicle_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, neoVehicle_frag_src, nil }; neoVehicleShader = Shader::create(vs, fs); @@ -271,8 +272,8 @@ CreateWorldPipe(void) ReadTweakValueTable((char*)work_buff, WorldLightmapBlend); { -#include "shaders/neoWorldVC_fs_gl.inc" -#include "shaders/default_UV2_gl.inc" +#include "shaders/obj/neoWorldVC_frag.inc" +#include "shaders/obj/default_UV2_vert.inc" const char *vs[] = { shaderDecl, header_vert_src, default_UV2_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, neoWorldVC_frag_src, nil }; neoWorldShader = Shader::create(vs, fs); @@ -379,8 +380,8 @@ CreateGlossPipe(void) using namespace rw::gl3; { -#include "shaders/neoGloss_fs_gl.inc" -#include "shaders/neoGloss_vs_gl.inc" +#include "shaders/obj/neoGloss_frag.inc" +#include "shaders/obj/neoGloss_vert.inc" const char *vs[] = { shaderDecl, header_vert_src, neoGloss_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, neoGloss_frag_src, nil }; neoGlossShader = Shader::create(vs, fs); @@ -449,6 +450,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) Material *m; + rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -472,7 +474,7 @@ rimSkinRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); setTexture(0, m->texture); @@ -499,6 +501,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) Material *m; + rw::uint32 flags = atomic->geometry->flags; setWorldMatrix(atomic->getFrame()->getLTM()); lightingCB(atomic); @@ -520,7 +523,7 @@ rimRenderCB(rw::Atomic *atomic, rw::gl3::InstanceDataHeader *header) while(n--){ m = inst->material; - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); setTexture(0, m->texture); @@ -551,8 +554,8 @@ CreateRimLightPipes(void) } { -#include "shaders/simple_fs_gl.inc" -#include "shaders/neoRimSkin_gl.inc" +#include "shaders/obj/simple_frag.inc" +#include "shaders/obj/neoRimSkin_vert.inc" const char *vs[] = { shaderDecl, header_vert_src, neoRimSkin_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil }; neoRimSkinShader = Shader::create(vs, fs); @@ -560,8 +563,8 @@ CreateRimLightPipes(void) } { -#include "shaders/simple_fs_gl.inc" -#include "shaders/neoRim_gl.inc" +#include "shaders/obj/simple_frag.inc" +#include "shaders/obj/neoRim_vert.inc" const char *vs[] = { shaderDecl, header_vert_src, neoRim_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, simple_frag_src, nil }; neoRimShader = Shader::create(vs, fs); @@ -665,6 +668,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass) assert(building->instHeader->platform == PLATFORM_GL3); building->fadeAlpha = 255; building->lighting = !!(atomic->geometry->flags & rw::Geometry::LIGHT); + rw::uint32 flags = atomic->geometry->flags; WorldLights lights; lights.numAmbients = 1; @@ -704,7 +708,7 @@ AtomicFirstPass(RpAtomic *atomic, int pass) setupDone = true; } - setMaterial(m->color, m->surfaceProps); + setMaterial(flags, m->color, m->surfaceProps); setTexture(0, m->texture); @@ -773,7 +777,7 @@ RenderBlendPass(int pass) rw::RGBA color = m->color; color.alpha = (color.alpha * building->fadeAlpha)/255; - setMaterial(color, m->surfaceProps); + setMaterial(color, m->surfaceProps); // always modulate here setTexture(0, m->texture); diff --git a/src/extras/postfx.cpp b/src/extras/postfx.cpp index 03010267..b47deab4 100644 --- a/src/extras/postfx.cpp +++ b/src/extras/postfx.cpp @@ -142,17 +142,17 @@ CPostFX::Open(RwCamera *cam) #ifdef RW_D3D9 -#include "shaders/colourfilterVC_PS.inc" +#include "shaders/obj/colourfilterVC_PS.inc" colourfilterVC_PS = rw::d3d::createPixelShader(colourfilterVC_PS_cso); -#include "shaders/contrastPS.inc" +#include "shaders/obj/contrastPS.inc" contrast_PS = rw::d3d::createPixelShader(contrastPS_cso); #endif #ifdef RW_OPENGL using namespace rw::gl3; { -#include "shaders/im2d_gl.inc" -#include "shaders/colourfilterVC_fs_gl.inc" +#include "shaders/obj/im2d_vert.inc" +#include "shaders/obj/colourfilterVC_frag.inc" const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, colourfilterVC_frag_src, nil }; colourFilterVC = Shader::create(vs, fs); @@ -160,8 +160,8 @@ CPostFX::Open(RwCamera *cam) } { -#include "shaders/im2d_gl.inc" -#include "shaders/contrast_fs_gl.inc" +#include "shaders/obj/im2d_vert.inc" +#include "shaders/obj/contrast_frag.inc" const char *vs[] = { shaderDecl, header_vert_src, im2d_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, contrast_frag_src, nil }; contrast = Shader::create(vs, fs); diff --git a/src/extras/screendroplets.cpp b/src/extras/screendroplets.cpp index 74c44da0..1412141e 100644 --- a/src/extras/screendroplets.cpp +++ b/src/extras/screendroplets.cpp @@ -112,14 +112,14 @@ ScreenDroplets::InitDraw(void) openim2d_uv2(); #ifdef RW_D3D9 -#include "shaders/screenDroplet_PS.inc" +#include "shaders/obj/screenDroplet_PS.inc" screenDroplet_PS = rw::d3d::createPixelShader(screenDroplet_PS_cso); #endif #ifdef RW_GL3 using namespace rw::gl3; { -#include "shaders/im2d_UV2_gl.inc" -#include "shaders/screenDroplet_fs_gl.inc" +#include "shaders/obj/im2d_UV2_vert.inc" +#include "shaders/obj/screenDroplet_frag.inc" const char *vs[] = { shaderDecl, header_vert_src, im2d_UV2_vert_src, nil }; const char *fs[] = { shaderDecl, header_frag_src, screenDroplet_frag_src, nil }; screenDroplet = Shader::create(vs, fs); diff --git a/src/extras/shaders/Makefile b/src/extras/shaders/Makefile deleted file mode 100644 index 5089e16a..00000000 --- a/src/extras/shaders/Makefile +++ /dev/null @@ -1,78 +0,0 @@ -all: im2d_gl.inc simple_fs_gl.inc default_UV2_gl.inc \ - colourfilterVC_fs_gl.inc contrast_fs_gl.inc \ - neoRim_gl.inc neoRimSkin_gl.inc \ - neoWorldVC_fs_gl.inc neoGloss_vs_gl.inc neoGloss_fs_gl.inc \ - neoVehicle_vs_gl.inc neoVehicle_fs_gl.inc \ - im2d_UV2_gl.inc screenDroplet_fs_gl.inc - -im2d_gl.inc: im2d.vert - (echo 'const char *im2d_vert_src =';\ - sed 's/..*/"&\\n"/' im2d.vert;\ - echo ';') >im2d_gl.inc - -colourfilterVC_fs_gl.inc: colourfilterVC.frag - (echo 'const char *colourfilterVC_frag_src =';\ - sed 's/..*/"&\\n"/' colourfilterVC.frag;\ - echo ';') >colourfilterVC_fs_gl.inc -simple_fs_gl.inc: simple.frag - (echo 'const char *simple_frag_src =';\ - sed 's/..*/"&\\n"/' simple.frag;\ - echo ';') >simple_fs_gl.inc - -default_UV2_gl.inc: default_UV2.vert - (echo 'const char *default_UV2_vert_src =';\ - sed 's/..*/"&\\n"/' default_UV2.vert;\ - echo ';') >default_UV2_gl.inc - - - -contrast_fs_gl.inc: contrast.frag - (echo 'const char *contrast_frag_src =';\ - sed 's/..*/"&\\n"/' contrast.frag;\ - echo ';') >contrast_fs_gl.inc - - -neoRim_gl.inc: neoRim.vert - (echo 'const char *neoRim_vert_src =';\ - sed 's/..*/"&\\n"/' neoRim.vert;\ - echo ';') >neoRim_gl.inc - -neoRimSkin_gl.inc: neoRimSkin.vert - (echo 'const char *neoRimSkin_vert_src =';\ - sed 's/..*/"&\\n"/' neoRimSkin.vert;\ - echo ';') >neoRimSkin_gl.inc - -neoWorldVC_fs_gl.inc: neoWorldVC.frag - (echo 'const char *neoWorldVC_frag_src =';\ - sed 's/..*/"&\\n"/' neoWorldVC.frag;\ - echo ';') >neoWorldVC_fs_gl.inc - -neoGloss_fs_gl.inc: neoGloss.frag - (echo 'const char *neoGloss_frag_src =';\ - sed 's/..*/"&\\n"/' neoGloss.frag;\ - echo ';') >neoGloss_fs_gl.inc - -neoGloss_vs_gl.inc: neoGloss.vert - (echo 'const char *neoGloss_vert_src =';\ - sed 's/..*/"&\\n"/' neoGloss.vert;\ - echo ';') >neoGloss_vs_gl.inc - -neoVehicle_vs_gl.inc: neoVehicle.vert - (echo 'const char *neoVehicle_vert_src =';\ - sed 's/..*/"&\\n"/' neoVehicle.vert;\ - echo ';') >neoVehicle_vs_gl.inc - -neoVehicle_fs_gl.inc: neoVehicle.frag - (echo 'const char *neoVehicle_frag_src =';\ - sed 's/..*/"&\\n"/' neoVehicle.frag;\ - echo ';') >neoVehicle_fs_gl.inc - -im2d_UV2_gl.inc: im2d_UV2.vert - (echo 'const char *im2d_UV2_vert_src =';\ - sed 's/..*/"&\\n"/' im2d_UV2.vert;\ - echo ';') >im2d_UV2_gl.inc - -screenDroplet_fs_gl.inc: screenDroplet.frag - (echo 'const char *screenDroplet_frag_src =';\ - sed 's/..*/"&\\n"/' screenDroplet.frag;\ - echo ';') >screenDroplet_fs_gl.inc diff --git a/src/extras/shaders/make_glsl.sh b/src/extras/shaders/make_glsl.sh new file mode 100644 index 00000000..0af98961 --- /dev/null +++ b/src/extras/shaders/make_glsl.sh @@ -0,0 +1,9 @@ +#!sh +for i in *.vert; do + echo $i + ./makeinc_glsl.sh $i +done +for i in *.frag; do + echo $i + ./makeinc_glsl.sh $i +done diff --git a/src/extras/shaders/make.cmd b/src/extras/shaders/make_hlsl.cmd similarity index 58% rename from src/extras/shaders/make.cmd rename to src/extras/shaders/make_hlsl.cmd index 8404ac6c..dee95283 100644 --- a/src/extras/shaders/make.cmd +++ b/src/extras/shaders/make_hlsl.cmd @@ -1,3 +1,3 @@ @echo off -for %%f in (*PS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T ps_2_0 /nologo /E main /Fo %%~nf.cso %%f -for %%f in (*VS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T vs_2_0 /nologo /E main /Fo %%~nf.cso %%f +for %%f in (*PS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T ps_2_0 /nologo /E main /Fo obj\%%~nf.cso %%f +for %%f in (*VS.hlsl) do "%DXSDK_DIR%\Utilities\bin\x86\fxc.exe" /T vs_2_0 /nologo /E main /Fo obj\%%~nf.cso %%f diff --git a/src/extras/shaders/makeinc_glsl.sh b/src/extras/shaders/makeinc_glsl.sh new file mode 100644 index 00000000..2bc6a387 --- /dev/null +++ b/src/extras/shaders/makeinc_glsl.sh @@ -0,0 +1,6 @@ +#!sh +ext=${1##*.} +name=${1%.*} +(echo "const char *${name}_${ext}_src =";\ +sed 's/..*/"&\\n"/' $1;\ +echo ';') > obj/${name}_${ext}.inc diff --git a/src/extras/shaders/makeinc.sh b/src/extras/shaders/makeinc_hlsl.sh similarity index 93% rename from src/extras/shaders/makeinc.sh rename to src/extras/shaders/makeinc_hlsl.sh index a649af33..a5b12867 100644 --- a/src/extras/shaders/makeinc.sh +++ b/src/extras/shaders/makeinc_hlsl.sh @@ -1,4 +1,5 @@ #!sh +cd obj for i in *cso; do (echo -n 'static ' xxd -i $i | grep -v '_len = ') > ${i%cso}inc diff --git a/src/extras/shaders/colourfilterVC_PS.cso b/src/extras/shaders/obj/colourfilterVC_PS.cso similarity index 100% rename from src/extras/shaders/colourfilterVC_PS.cso rename to src/extras/shaders/obj/colourfilterVC_PS.cso diff --git a/src/extras/shaders/colourfilterVC_PS.inc b/src/extras/shaders/obj/colourfilterVC_PS.inc similarity index 100% rename from src/extras/shaders/colourfilterVC_PS.inc rename to src/extras/shaders/obj/colourfilterVC_PS.inc diff --git a/src/extras/shaders/colourfilterVC_fs_gl.inc b/src/extras/shaders/obj/colourfilterVC_frag.inc similarity index 100% rename from src/extras/shaders/colourfilterVC_fs_gl.inc rename to src/extras/shaders/obj/colourfilterVC_frag.inc diff --git a/src/extras/shaders/contrastPS.cso b/src/extras/shaders/obj/contrastPS.cso similarity index 100% rename from src/extras/shaders/contrastPS.cso rename to src/extras/shaders/obj/contrastPS.cso diff --git a/src/extras/shaders/contrastPS.inc b/src/extras/shaders/obj/contrastPS.inc similarity index 100% rename from src/extras/shaders/contrastPS.inc rename to src/extras/shaders/obj/contrastPS.inc diff --git a/src/extras/shaders/contrast_fs_gl.inc b/src/extras/shaders/obj/contrast_frag.inc similarity index 100% rename from src/extras/shaders/contrast_fs_gl.inc rename to src/extras/shaders/obj/contrast_frag.inc diff --git a/src/extras/shaders/default_UV2_VS.cso b/src/extras/shaders/obj/default_UV2_VS.cso similarity index 100% rename from src/extras/shaders/default_UV2_VS.cso rename to src/extras/shaders/obj/default_UV2_VS.cso diff --git a/src/extras/shaders/default_UV2_VS.inc b/src/extras/shaders/obj/default_UV2_VS.inc similarity index 100% rename from src/extras/shaders/default_UV2_VS.inc rename to src/extras/shaders/obj/default_UV2_VS.inc diff --git a/src/extras/shaders/default_UV2_gl.inc b/src/extras/shaders/obj/default_UV2_vert.inc similarity index 100% rename from src/extras/shaders/default_UV2_gl.inc rename to src/extras/shaders/obj/default_UV2_vert.inc diff --git a/src/extras/shaders/im2d_UV2_gl.inc b/src/extras/shaders/obj/im2d_UV2_vert.inc similarity index 100% rename from src/extras/shaders/im2d_UV2_gl.inc rename to src/extras/shaders/obj/im2d_UV2_vert.inc diff --git a/src/extras/shaders/im2d_gl.inc b/src/extras/shaders/obj/im2d_vert.inc similarity index 100% rename from src/extras/shaders/im2d_gl.inc rename to src/extras/shaders/obj/im2d_vert.inc diff --git a/src/extras/shaders/neoGloss_PS.cso b/src/extras/shaders/obj/neoGloss_PS.cso similarity index 100% rename from src/extras/shaders/neoGloss_PS.cso rename to src/extras/shaders/obj/neoGloss_PS.cso diff --git a/src/extras/shaders/neoGloss_PS.inc b/src/extras/shaders/obj/neoGloss_PS.inc similarity index 100% rename from src/extras/shaders/neoGloss_PS.inc rename to src/extras/shaders/obj/neoGloss_PS.inc diff --git a/src/extras/shaders/neoGloss_VS.cso b/src/extras/shaders/obj/neoGloss_VS.cso similarity index 100% rename from src/extras/shaders/neoGloss_VS.cso rename to src/extras/shaders/obj/neoGloss_VS.cso diff --git a/src/extras/shaders/neoGloss_VS.inc b/src/extras/shaders/obj/neoGloss_VS.inc similarity index 100% rename from src/extras/shaders/neoGloss_VS.inc rename to src/extras/shaders/obj/neoGloss_VS.inc diff --git a/src/extras/shaders/neoGloss_fs_gl.inc b/src/extras/shaders/obj/neoGloss_frag.inc similarity index 100% rename from src/extras/shaders/neoGloss_fs_gl.inc rename to src/extras/shaders/obj/neoGloss_frag.inc diff --git a/src/extras/shaders/neoGloss_vs_gl.inc b/src/extras/shaders/obj/neoGloss_vert.inc similarity index 100% rename from src/extras/shaders/neoGloss_vs_gl.inc rename to src/extras/shaders/obj/neoGloss_vert.inc diff --git a/src/extras/shaders/neoRimSkin_VS.cso b/src/extras/shaders/obj/neoRimSkin_VS.cso similarity index 100% rename from src/extras/shaders/neoRimSkin_VS.cso rename to src/extras/shaders/obj/neoRimSkin_VS.cso diff --git a/src/extras/shaders/neoRimSkin_VS.inc b/src/extras/shaders/obj/neoRimSkin_VS.inc similarity index 100% rename from src/extras/shaders/neoRimSkin_VS.inc rename to src/extras/shaders/obj/neoRimSkin_VS.inc diff --git a/src/extras/shaders/neoRimSkin_gl.inc b/src/extras/shaders/obj/neoRimSkin_vert.inc similarity index 100% rename from src/extras/shaders/neoRimSkin_gl.inc rename to src/extras/shaders/obj/neoRimSkin_vert.inc diff --git a/src/extras/shaders/neoRim_VS.cso b/src/extras/shaders/obj/neoRim_VS.cso similarity index 100% rename from src/extras/shaders/neoRim_VS.cso rename to src/extras/shaders/obj/neoRim_VS.cso diff --git a/src/extras/shaders/neoRim_VS.inc b/src/extras/shaders/obj/neoRim_VS.inc similarity index 100% rename from src/extras/shaders/neoRim_VS.inc rename to src/extras/shaders/obj/neoRim_VS.inc diff --git a/src/extras/shaders/neoRim_gl.inc b/src/extras/shaders/obj/neoRim_vert.inc similarity index 100% rename from src/extras/shaders/neoRim_gl.inc rename to src/extras/shaders/obj/neoRim_vert.inc diff --git a/src/extras/shaders/neoVehicle_PS.cso b/src/extras/shaders/obj/neoVehicle_PS.cso similarity index 100% rename from src/extras/shaders/neoVehicle_PS.cso rename to src/extras/shaders/obj/neoVehicle_PS.cso diff --git a/src/extras/shaders/neoVehicle_PS.inc b/src/extras/shaders/obj/neoVehicle_PS.inc similarity index 100% rename from src/extras/shaders/neoVehicle_PS.inc rename to src/extras/shaders/obj/neoVehicle_PS.inc diff --git a/src/extras/shaders/neoVehicle_VS.cso b/src/extras/shaders/obj/neoVehicle_VS.cso similarity index 100% rename from src/extras/shaders/neoVehicle_VS.cso rename to src/extras/shaders/obj/neoVehicle_VS.cso diff --git a/src/extras/shaders/neoVehicle_VS.inc b/src/extras/shaders/obj/neoVehicle_VS.inc similarity index 100% rename from src/extras/shaders/neoVehicle_VS.inc rename to src/extras/shaders/obj/neoVehicle_VS.inc diff --git a/src/extras/shaders/neoVehicle_fs_gl.inc b/src/extras/shaders/obj/neoVehicle_frag.inc similarity index 100% rename from src/extras/shaders/neoVehicle_fs_gl.inc rename to src/extras/shaders/obj/neoVehicle_frag.inc diff --git a/src/extras/shaders/neoVehicle_vs_gl.inc b/src/extras/shaders/obj/neoVehicle_vert.inc similarity index 100% rename from src/extras/shaders/neoVehicle_vs_gl.inc rename to src/extras/shaders/obj/neoVehicle_vert.inc diff --git a/src/extras/shaders/neoWorldVC_PS.cso b/src/extras/shaders/obj/neoWorldVC_PS.cso similarity index 100% rename from src/extras/shaders/neoWorldVC_PS.cso rename to src/extras/shaders/obj/neoWorldVC_PS.cso diff --git a/src/extras/shaders/neoWorldVC_PS.inc b/src/extras/shaders/obj/neoWorldVC_PS.inc similarity index 100% rename from src/extras/shaders/neoWorldVC_PS.inc rename to src/extras/shaders/obj/neoWorldVC_PS.inc diff --git a/src/extras/shaders/neoWorldVC_fs_gl.inc b/src/extras/shaders/obj/neoWorldVC_frag.inc similarity index 100% rename from src/extras/shaders/neoWorldVC_fs_gl.inc rename to src/extras/shaders/obj/neoWorldVC_frag.inc diff --git a/src/extras/shaders/screenDroplet_PS.cso b/src/extras/shaders/obj/screenDroplet_PS.cso similarity index 100% rename from src/extras/shaders/screenDroplet_PS.cso rename to src/extras/shaders/obj/screenDroplet_PS.cso diff --git a/src/extras/shaders/screenDroplet_PS.inc b/src/extras/shaders/obj/screenDroplet_PS.inc similarity index 100% rename from src/extras/shaders/screenDroplet_PS.inc rename to src/extras/shaders/obj/screenDroplet_PS.inc diff --git a/src/extras/shaders/screenDroplet_fs_gl.inc b/src/extras/shaders/obj/screenDroplet_frag.inc similarity index 100% rename from src/extras/shaders/screenDroplet_fs_gl.inc rename to src/extras/shaders/obj/screenDroplet_frag.inc diff --git a/src/extras/shaders/simple_fs_gl.inc b/src/extras/shaders/obj/simple_frag.inc similarity index 100% rename from src/extras/shaders/simple_fs_gl.inc rename to src/extras/shaders/obj/simple_frag.inc diff --git a/vendor/librw b/vendor/librw index 60a5ace1..5c953008 160000 --- a/vendor/librw +++ b/vendor/librw @@ -1 +1 @@ -Subproject commit 60a5ace16309ccd3d174a3ec14a1062540934066 +Subproject commit 5c95300890559c85a2764bc200361f904cd4f9f4 From 675aef29cf85f956052a150792d4d56f91ff692c Mon Sep 17 00:00:00 2001 From: erorcun Date: Fri, 5 Feb 2021 17:51:57 +0300 Subject: [PATCH 052/113] Detect joystick menu for XInput --- src/core/ControllerConfig.cpp | 5 ++++ src/core/Frontend.h | 2 +- src/core/MenuScreensCustom.cpp | 51 ++++++++++++++++++++++++++++++++-- src/core/Pad.cpp | 6 ++++ src/core/Pad.h | 2 ++ src/core/config.h | 4 +-- src/core/re3.cpp | 42 ++++++++++++++++++++++++++-- src/skel/crossplatform.h | 2 +- src/skel/glfw/glfw.cpp | 8 +++--- src/skel/win/win.cpp | 4 +++ 10 files changed, 112 insertions(+), 14 deletions(-) diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index 7f634619..fda435ae 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -326,6 +326,11 @@ uint32 CControllerConfigManager::ms_padButtonsInited = 0; void CControllerConfigManager::InitDefaultControlConfigJoyPad(uint32 buttons) { +#ifdef XINPUT + // No manual bindings for you, honey. + return; +#endif + m_bFirstCapture = true; uint32 btn = buttons; diff --git a/src/core/Frontend.h b/src/core/Frontend.h index c1c3983e..060b70da 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -206,7 +206,7 @@ enum eMenuScreen #ifdef GRAPHICS_MENU_OPTIONS MENUPAGE_GRAPHICS_SETTINGS, #endif -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU MENUPAGE_DETECT_JOYSTICK, #endif diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 770e8ec1..c73d64b4 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -1,4 +1,13 @@ #include "common.h" +#if defined DETECT_JOYSTICK_MENU && defined XINPUT +#include +#include +#if !defined(PSAPI_VERSION) || (PSAPI_VERSION > 1) +#pragma comment( lib, "Xinput9_1_0.lib" ) +#else +#pragma comment( lib, "Xinput.lib" ) +#endif +#endif #include "platform.h" #include "crossplatform.h" #include "Renderer.h" @@ -277,11 +286,13 @@ void ScreenModeAfterChange(int8 before, int8 after) #endif -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU wchar selectedJoystickUnicode[128]; int cachedButtonNum = -1; wchar* DetectJoystickDraw(bool* disabled, bool userHovering) { + +#if defined RW_GL3 && !defined LIBRW_SDL2 int numButtons; int found = -1; const char *joyname; @@ -312,6 +323,40 @@ wchar* DetectJoystickDraw(bool* disabled, bool userHovering) { } } if (PSGLOBAL(joy1id) == -1) +#elif defined XINPUT + int found = -1; + XINPUT_STATE xstate; + memset(&xstate, 0, sizeof(XINPUT_STATE)); + if (userHovering) { + for (int i = 0; i <= 3; i++) { + if (XInputGetState(i, &xstate) == ERROR_SUCCESS) { + if (xstate.Gamepad.bLeftTrigger || xstate.Gamepad.bRightTrigger) { + found = i; + break; + } + for (int j = XINPUT_GAMEPAD_DPAD_UP; j != XINPUT_GAMEPAD_Y << 1; j = (j << 1)) { + if (xstate.Gamepad.wButtons & j) { + found = i; + break; + } + } + if (found != -1) + break; + } + } + if (found != -1 && CPad::XInputJoy1 != found) { + if (CPad::XInputJoy1 != -1 && CPad::XInputJoy1 != found) + CPad::XInputJoy2 = CPad::XInputJoy1; + else + CPad::XInputJoy2 = -1; + + CPad::XInputJoy1 = found; + cachedButtonNum = 0; // fake too, because xinput bypass CControllerConfig + } + } + sprintf(gSelectedJoystickName, "%d", CPad::XInputJoy1); // fake, on xinput we only store gamepad ids(thanks MS) so this is a temp variable to be used below + if (CPad::XInputJoy1 == -1) +#endif AsciiToUnicode("Not found", selectedJoystickUnicode); else AsciiToUnicode(gSelectedJoystickName, selectedJoystickUnicode); @@ -567,7 +612,7 @@ CMenuScreenCustom aScreens[] = { #else MENUACTION_KEYBOARDCTRLS,"FEC_RED", {nil, SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS}, 320, 150, MENUALIGN_CENTER, #endif -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER, #endif MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER, @@ -715,7 +760,7 @@ CMenuScreenCustom aScreens[] = { }, #endif -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU // MENUPAGE_DETECT_JOYSTICK { "FEC_JOD", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({0, 0, 0, false, false, 30}), DetectJoystickGoBack, MENUACTION_LABEL, "FEC_JPR", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, 0, 0, 0, diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp index 5c79c0d3..e75510e5 100644 --- a/src/core/Pad.cpp +++ b/src/core/Pad.cpp @@ -1585,8 +1585,14 @@ void CPad::AddToPCCheatString(char c) } #ifdef XINPUT +int CPad::XInputJoy1 = 0; +int CPad::XInputJoy2 = 1; void CPad::AffectFromXinput(uint32 pad) { + pad = pad == 0 ? XInputJoy1 : XInputJoy2; + if (pad == -1) // LoadINIControllerSettings can set it to -1 + return; + XINPUT_STATE xstate; memset(&xstate, 0, sizeof(XINPUT_STATE)); if (XInputGetState(pad, &xstate) == ERROR_SUCCESS) diff --git a/src/core/Pad.h b/src/core/Pad.h index 9f9f81b6..f141ed6c 100644 --- a/src/core/Pad.h +++ b/src/core/Pad.h @@ -276,6 +276,8 @@ public: void SetDrunkInputDelay(int32 delay) { DrunkDrivingBufferUsed = delay; } #ifdef XINPUT + static int XInputJoy1; + static int XInputJoy2; void AffectFromXinput(uint32 pad); #endif diff --git a/src/core/config.h b/src/core/config.h index cc82f8d6..abb819f9 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -298,8 +298,8 @@ enum Config { #if !defined(RW_GL3) && defined(_WIN32) #define XINPUT #endif -#if !defined(_WIN32) && !defined(__SWITCH__) -#define DONT_TRUST_RECOGNIZED_JOYSTICKS // Then we'll only rely on GLFW gamepad DB, and expect user to enter Controller->Detect joysticks if his joystick isn't on that list. +#if defined XINPUT || (defined RW_GL3 && !defined LIBRW_SDL2 && !defined __SWITCH__) +#define DETECT_JOYSTICK_MENU // Then we'll expect user to enter Controller->Detect joysticks if his joystick isn't detected at the start. #endif #define DETECT_PAD_INPUT_SWITCH // Adds automatic switch of pad related stuff between controller and kb/m #define KANGAROO_CHEAT diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 4b828171..3388b56a 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -1,6 +1,14 @@ #include #define WITHWINDOWS #include "common.h" +#if defined DETECT_JOYSTICK_MENU && defined XINPUT +#include +#if !defined(PSAPI_VERSION) || (PSAPI_VERSION > 1) +#pragma comment( lib, "Xinput9_1_0.lib" ) +#else +#pragma comment( lib, "Xinput.lib" ) +#endif +#endif #include "Renderer.h" #include "Occlusion.h" #include "Credits.h" @@ -37,7 +45,7 @@ #include "MBlur.h" #include "ControllerConfig.h" -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU #include "crossplatform.h" #endif @@ -249,8 +257,32 @@ const char *iniKeyboardButtons[] = {"ESC","F1","F2","F3","F4","F5","F6","F7","F8 void LoadINIControllerSettings() { -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU +#ifdef XINPUT + int storedJoy1 = -1; + if (ReadIniIfExists("Controller", "JoystickName", &storedJoy1)) { + CPad::XInputJoy1 = -1; + CPad::XInputJoy2 = -1; + XINPUT_STATE xstate; + memset(&xstate, 0, sizeof(XINPUT_STATE)); + + // Firstly confirm & set joy 1 + if (XInputGetState(storedJoy1, &xstate) == ERROR_SUCCESS) { + CPad::XInputJoy1 = storedJoy1; + } + + for (int i = 0; i <= 3; i++) { + if (XInputGetState(i, &xstate) == ERROR_SUCCESS) { + if (CPad::XInputJoy1 == -1) + CPad::XInputJoy1 = i; + else if (CPad::XInputJoy2 == -1 && i != CPad::XInputJoy1) + CPad::XInputJoy2 = i; + } + } + } +#else ReadIniIfExists("Controller", "JoystickName", gSelectedJoystickName, 128); +#endif #endif // force to default GTA behaviour (never overwrite bindings on joy change/initialization) if user init'ed/set bindings before we introduced that if (!ReadIniIfExists("Controller", "PadButtonsInited", &ControlsManager.ms_padButtonsInited)) { @@ -348,8 +380,12 @@ void SaveINIControllerSettings() StoreIni("Bindings", iniControllerActions[i], value, 128); } -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU +#ifdef XINPUT + StoreIni("Controller", "JoystickName", CPad::XInputJoy1); +#else StoreIni("Controller", "JoystickName", gSelectedJoystickName, 128); +#endif #endif StoreIni("Controller", "PadButtonsInited", ControlsManager.ms_padButtonsInited); cfg.write_file("reVC.ini"); diff --git a/src/skel/crossplatform.h b/src/skel/crossplatform.h index 009b17c7..6ea5b11e 100644 --- a/src/skel/crossplatform.h +++ b/src/skel/crossplatform.h @@ -75,7 +75,7 @@ void CapturePad(RwInt32 padID); void joysChangeCB(int jid, int event); #endif -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU extern char gSelectedJoystickName[128]; #endif diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index 97a77827..8fe1d93f 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -80,7 +80,7 @@ static psGlobalType PsGlobal; size_t _dwMemAvailPhys; RwUInt32 gGameState; -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU char gSelectedJoystickName[128] = ""; #endif @@ -852,7 +852,7 @@ void joysChangeCB(int jid, int event); bool IsThisJoystickBlacklisted(int i) { -#ifndef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifndef DETECT_JOYSTICK_MENU return false; #else if (glfwJoystickIsGamepad(i)) @@ -917,7 +917,7 @@ void _InputInitialiseJoys() if (PSGLOBAL(joy1id) != -1) { int count; glfwGetJoystickButtons(PSGLOBAL(joy1id), &count); -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU strcpy(gSelectedJoystickName, glfwGetJoystickName(PSGLOBAL(joy1id))); #endif ControlsManager.InitDefaultControlConfigJoyPad(count); @@ -2182,7 +2182,7 @@ void joysChangeCB(int jid, int event) if (event == GLFW_CONNECTED && !IsThisJoystickBlacklisted(jid)) { if (PSGLOBAL(joy1id) == -1) { PSGLOBAL(joy1id) = jid; -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU strcpy(gSelectedJoystickName, glfwGetJoystickName(jid)); #endif // This is behind LOAD_INI_SETTINGS, because otherwise the Init call below will destroy/overwrite your bindings. diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp index 397e88c4..6ed02011 100644 --- a/src/skel/win/win.cpp +++ b/src/skel/win/win.cpp @@ -120,6 +120,10 @@ DWORD _dwOperatingSystemVersion; RwUInt32 gGameState; CJoySticks AllValidWinJoys; +#ifdef DETECT_JOYSTICK_MENU +char gSelectedJoystickName[128] = ""; +#endif + // What is that for anyway? #ifndef IMPROVED_VIDEOMODE static RwBool defaultFullscreenRes = TRUE; From 2cad49940e96b53adac413f66dcbc690774dba44 Mon Sep 17 00:00:00 2001 From: erorcun Date: Sun, 7 Feb 2021 21:13:54 +0300 Subject: [PATCH 053/113] Use our synonyms for attack anims again --- src/animation/AnimManager.cpp | 30 ++++++++++----------- src/animation/AnimationId.h | 16 +++++++++++ src/peds/Ped.cpp | 4 +-- src/peds/Ped.h | 24 ++++++++--------- src/peds/PedFight.cpp | 50 +++++++++++++++++------------------ src/peds/PlayerPed.cpp | 4 +-- 6 files changed, 72 insertions(+), 56 deletions(-) diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index 8d35b06b..f6ac3eb5 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -232,25 +232,25 @@ AnimAssocDesc aBikeAnimDescs[] = { { ANIM_BIKE_RIDE_P, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, }; AnimAssocDesc aMeleeAnimDescs[] = { - { ANIM_ATTACK_1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_EXTRA1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, - { ANIM_ATTACK_EXTRA2, ASSOC_REPEAT }, - { ANIM_ATTACK_3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, + { ANIM_MELEE_ATTACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK_2ND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK_START, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_NOWALK }, + { ANIM_MELEE_IDLE_FIGHTMODE, ASSOC_REPEAT }, + { ANIM_MELEE_ATTACK_FINISH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, }; AnimAssocDesc aSwingAnimDescs[] = { - { ANIM_ATTACK_1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_EXTRA1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_EXTRA2, ASSOC_REPEAT }, - { ANIM_ATTACK_3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK_2ND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_ATTACK_START, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_MELEE_IDLE_FIGHTMODE, ASSOC_REPEAT }, + { ANIM_MELEE_ATTACK_FINISH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aWeaponAnimDescs[] = { - { ANIM_ATTACK_1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_EXTRA1, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_EXTRA2, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, - { ANIM_ATTACK_3, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_FIRE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_CROUCHFIRE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_RELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_CROUCHRELOAD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, + { ANIM_WEAPON_FIRE_3RD, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, }; AnimAssocDesc aMedicAnimDescs[] = { { ANIM_MEDIC_CPR, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, diff --git a/src/animation/AnimationId.h b/src/animation/AnimationId.h index afe37f78..0b5d8d8e 100644 --- a/src/animation/AnimationId.h +++ b/src/animation/AnimationId.h @@ -241,6 +241,22 @@ enum AnimationId ANIM_ATTACK_EXTRA2, ANIM_ATTACK_3, + // our synonyms... because originals are hard to understand + ANIM_WEAPON_FIRE = ANIM_ATTACK_1, + ANIM_WEAPON_CROUCHFIRE, + ANIM_WEAPON_FIRE_2ND = ANIM_WEAPON_CROUCHFIRE, + ANIM_WEAPON_RELOAD, + ANIM_WEAPON_CROUCHRELOAD, + ANIM_WEAPON_FIRE_3RD, + ANIM_THROWABLE_THROW = ANIM_ATTACK_1, + ANIM_THROWABLE_THROWU, + ANIM_THROWABLE_START_THROW, + ANIM_MELEE_ATTACK = ANIM_ATTACK_1, + ANIM_MELEE_ATTACK_2ND, + ANIM_MELEE_ATTACK_START, + ANIM_MELEE_IDLE_FIGHTMODE, + ANIM_MELEE_ATTACK_FINISH, + ANIM_SUNBATHE_IDLE, ANIM_SUNBATHE_DOWN, ANIM_SUNBATHE_UP, diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index de474f38..1484d578 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -617,7 +617,7 @@ CPed::SetMoveAnim(void) if (!animAssoc) { animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); if (animAssoc && m_nPedState == PED_FIGHT) return; @@ -1433,7 +1433,7 @@ CPed::CalculateNewVelocity(void) fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); if(!fightAssoc) - fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); + fightAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); if ((!idleAssoc || idleAssoc->blendAmount < 0.5f) && !fightAssoc && !bIsDucking) { LimbOrientation newUpperLegs; diff --git a/src/peds/Ped.h b/src/peds/Ped.h index ac776469..ec6574de 100644 --- a/src/peds/Ped.h +++ b/src/peds/Ped.h @@ -1015,16 +1015,16 @@ public: static AnimationId Get3rdFireAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_COP3_RD)) - return ANIM_ATTACK_3; + return ANIM_WEAPON_FIRE_3RD; else return (AnimationId)0; } static AnimationId GetFireAnimGround(CWeaponInfo* weapon, bool kickFloorIfNone = true) { if (weapon->IsFlagSet(WEAPONFLAG_GROUND_2ND)) - return ANIM_ATTACK_2; + return ANIM_WEAPON_CROUCHFIRE; else if (weapon->IsFlagSet(WEAPONFLAG_GROUND_3RD)) - return ANIM_ATTACK_3; + return ANIM_WEAPON_FIRE_3RD; else if (kickFloorIfNone) return ANIM_STD_KICKGROUND; else @@ -1035,54 +1035,54 @@ public: if (weapon->IsFlagSet(WEAPONFLAG_ANIMDETONATE)) return ANIM_STD_DETONATE; else - return ANIM_ATTACK_1; + return ANIM_WEAPON_FIRE; } static AnimationId GetCrouchReloadAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_RELOAD)) - return ANIM_ATTACK_EXTRA2; + return ANIM_WEAPON_CROUCHRELOAD; else return (AnimationId)0; } static AnimationId GetCrouchFireAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) - return ANIM_ATTACK_2; + return ANIM_WEAPON_CROUCHFIRE; else return (AnimationId)0; } static AnimationId GetReloadAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_RELOAD)) - return ANIM_ATTACK_EXTRA1; + return ANIM_WEAPON_RELOAD; else return (AnimationId)0; } static AnimationId GetFightIdleWithMeleeAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_FIGHTMODE)) - return ANIM_ATTACK_EXTRA2; + return ANIM_MELEE_IDLE_FIGHTMODE; else return (AnimationId)0; } static AnimationId GetFinishingAttackAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_FINISH_3RD)) - return ANIM_ATTACK_3; + return ANIM_MELEE_ATTACK_FINISH; else return (AnimationId)0; } static AnimationId GetSecondFireAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_USE_2ND)) - return ANIM_ATTACK_2; // or ANIM_MELEE_ATTACK_2ND + return ANIM_WEAPON_FIRE_2ND; else return (AnimationId)0; } static AnimationId GetMeleeStartAnim(CWeaponInfo* weapon) { if (weapon->IsFlagSet(WEAPONFLAG_PARTIALATTACK)) - return ANIM_ATTACK_EXTRA1; + return ANIM_MELEE_ATTACK_START; else return (AnimationId)0; } @@ -1090,7 +1090,7 @@ public: static AnimationId GetThrowAnim(CWeaponInfo *weapon) { if (weapon->IsFlagSet(WEAPONFLAG_THROW)) - return ANIM_ATTACK_EXTRA1; + return ANIM_THROWABLE_START_THROW; else return (AnimationId)0; } diff --git a/src/peds/PedFight.cpp b/src/peds/PedFight.cpp index 66c71927..79e01211 100644 --- a/src/peds/PedFight.cpp +++ b/src/peds/PedFight.cpp @@ -182,14 +182,14 @@ CPed::SetPointGunAt(CEntity *to) if (bCrouchWhenShooting && bIsDucking && GetCrouchFireAnim(curWeapon)) { aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(curWeapon)); } else { - aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); + aimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); } if (!aimAssoc || aimAssoc->blendDelta < 0.0f) { if (bCrouchWhenShooting && bIsDucking && GetCrouchFireAnim(curWeapon)) { aimAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, GetCrouchFireAnim(curWeapon), 4.0f); } else { - aimAssoc = CAnimManager::AddAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_ATTACK_1); + aimAssoc = CAnimManager::AddAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_WEAPON_FIRE); } aimAssoc->blendAmount = 0.0f; @@ -204,7 +204,7 @@ CPed::PointGunAt(void) { CWeaponInfo *weaponInfo = CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType); float animLoopStart = weaponInfo->m_fAnimLoopStart; - CAnimBlendAssociation *weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); + CAnimBlendAssociation *weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); if (!weaponAssoc || weaponAssoc->blendDelta < 0.0f) { if (weaponInfo->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) { weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(weaponInfo)); @@ -240,7 +240,7 @@ CPed::ClearPointGunAt(void) RestorePreviousState(); } weaponInfo = CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType); - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); if (!animAssoc || animAssoc->blendDelta < 0.0f) { if (weaponInfo->IsFlagSet(WEAPONFLAG_CROUCHFIRE)) { animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchFireAnim(weaponInfo)); @@ -284,7 +284,7 @@ CPed::SetAttack(CEntity *victim) SetPedState(PED_ATTACK); bIsAttacking = false; - CAnimBlendAssociation *animAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_ATTACK_EXTRA1, 8.0f); + CAnimBlendAssociation *animAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_MELEE_ATTACK_START, 8.0f); animAssoc->SetRun(); if (animAssoc->currentTime == animAssoc->hierarchy->totalLength) animAssoc->SetCurrentTime(0.0f); @@ -304,7 +304,7 @@ CPed::SetAttack(CEntity *victim) if (m_nPedState != PED_ATTACK) { SetPedState(PED_ATTACK); bIsAttacking = false; - CAnimBlendAssociation* animAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_ATTACK_EXTRA1, 8.0f); + CAnimBlendAssociation* animAssoc = CAnimManager::BlendAnimation(GetClump(), curWeapon->m_AnimToPlay, ANIM_MELEE_ATTACK_START, 8.0f); animAssoc->SetRun(); if (animAssoc->currentTime == animAssoc->hierarchy->totalLength) animAssoc->SetCurrentTime(0.0f); @@ -397,7 +397,7 @@ CPed::SetAttack(CEntity *victim) AnimationId fireAnim; if (curWeapon->IsFlagSet(WEAPONFLAG_THROW)) - fireAnim = ANIM_ATTACK_EXTRA1; + fireAnim = ANIM_THROWABLE_START_THROW; else if (CGame::nastyGame && (curWeapon->IsFlagSet(WEAPONFLAG_GROUND_2ND) || curWeapon->IsFlagSet(WEAPONFLAG_GROUND_3RD))) { PedOnGroundState pedOnGround = CheckForPedsOnGroundToAttack(this, nil); if (pedOnGround > PED_IN_FRONT_OF_ATTACKER || pedOnGround == NO_PED && bIsStanding && m_pCurSurface && m_pCurSurface->IsVehicle()) { @@ -509,13 +509,13 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) } } } - } else if (attackAssoc && attackAssoc->animId == ANIM_ATTACK_EXTRA1 && currentWeapon->m_AnimToPlay == ASSOCGRP_THROW) { + } else if (attackAssoc && attackAssoc->animId == ANIM_THROWABLE_START_THROW && currentWeapon->m_AnimToPlay == ASSOCGRP_THROW) { if ((!ped->IsPlayer() || ((CPlayerPed*)ped)->m_bHaveTargetSelected) && ped->IsPlayer()) { attackAssoc->blendDelta = -1000.0f; - newAnim = CAnimManager::AddAnimation(ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_ATTACK_2); + newAnim = CAnimManager::AddAnimation(ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_THROWABLE_THROWU); } else { attackAssoc->blendDelta = -1000.0; - newAnim = CAnimManager::AddAnimation(ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_ATTACK_1); + newAnim = CAnimManager::AddAnimation(ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_THROWABLE_THROW); } newAnim->SetFinishCallback(FinishedAttackCB, ped); @@ -538,17 +538,17 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) AnimationId groundAnim = GetFireAnimGround(currentWeapon); CAnimBlendAssociation *groundAnimAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), groundAnim); if (!(groundAnimAssoc && (groundAnimAssoc->blendAmount > 0.95f || groundAnimAssoc->blendDelta > 0.0f))) { - if (attackAssoc && attackAssoc->animId == ANIM_ATTACK_1) { + if (attackAssoc && attackAssoc->animId == ANIM_MELEE_ATTACK) { newAnim = CAnimManager::BlendAnimation( ped->GetClump(), currentWeapon->m_AnimToPlay, GetSecondFireAnim(currentWeapon), 8.0f); } else { newAnim = CAnimManager::BlendAnimation( - ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_ATTACK_1, 8.0f); + ped->GetClump(), currentWeapon->m_AnimToPlay, ANIM_MELEE_ATTACK, 8.0f); } newAnim->SetFinishCallback(FinishedAttackCB, ped); } } else { - if (attackAssoc && attackAssoc->animId == ANIM_ATTACK_1 && currentWeapon->m_AnimToPlay == ASSOCGRP_UNARMED) { + if (attackAssoc && attackAssoc->animId == ANIM_MELEE_ATTACK && currentWeapon->m_AnimToPlay == ASSOCGRP_UNARMED) { attackAssoc->blendDelta = -8.0f; attackAssoc->flags |= ASSOC_DELETEFADEDOUT; ped->ClearAttack(); @@ -556,7 +556,7 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) } if (attackAssoc) { if (currentWeapon->m_AnimToPlay == ASSOCGRP_THROW) { - if ((attackAssoc->animId == ANIM_ATTACK_1 || attackAssoc->animId == ANIM_ATTACK_2) && ped->GetWeapon()->m_nAmmoTotal > 0) { + if ((attackAssoc->animId == ANIM_THROWABLE_THROW || attackAssoc->animId == ANIM_THROWABLE_THROWU) && ped->GetWeapon()->m_nAmmoTotal > 0) { ped->RemoveWeaponModel(currentWeapon->m_nModelId); ped->AddWeaponModel(currentWeapon->m_nModelId); } @@ -831,12 +831,12 @@ CPed::Attack(void) if(ourWeapon->m_AnimToPlay != ASSOCGRP_BASEBALLBAT && ourWeapon->m_AnimToPlay != ASSOCGRP_GOLFCLUB) { if (ourWeapon->m_eWeaponFire != WEAPON_FIRE_MELEE) { - TransformToNode(firePos, (weaponAnimAssoc->animId == ANIM_ATTACK_2 && ourWeapon->m_AnimToPlay == ASSOCGRP_UNARMED) ? PED_FOOTR : PED_HANDR); + TransformToNode(firePos, (weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_2ND && ourWeapon->m_AnimToPlay == ASSOCGRP_UNARMED) ? PED_FOOTR : PED_HANDR); } else { firePos = GetMatrix() * firePos; } } else { - if (weaponAnimAssoc->animId == ANIM_ATTACK_2) + if (weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_2ND) firePos.z = 0.7f * ourWeapon->m_fRadius - 1.0f; firePos = GetMatrix() * firePos; @@ -859,7 +859,7 @@ CPed::Attack(void) } switch (ourWeapon->m_AnimToPlay) { case ASSOCGRP_UNARMED: - if (weaponAnimAssoc->animId == ANIM_ATTACK_1 || weaponAnimAssoc->animId == ANIM_ATTACK_EXTRA1) + if (weaponAnimAssoc->animId == ANIM_MELEE_ATTACK || weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_START) DMAudio.PlayOneShot(m_audioEntityId, SOUND_FIGHT_46, (damagerType | (GetWeapon()->m_eWeaponType << 8))); break; case ASSOCGRP_KNIFE: @@ -882,7 +882,7 @@ CPed::Attack(void) } else { CVector firePos = ourWeapon->m_vecFireOffset; - if (weaponAnimAssoc->animId == ANIM_ATTACK_2) + if (weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_2ND) firePos.z = 0.7f * ourWeapon->m_fRadius - 1.0f; firePos = GetMatrix() * firePos; @@ -996,7 +996,7 @@ CPed::Attack(void) weaponAnimAssoc->SetFinishCallback(FinishedAttackCB, this); } else if (GetSecondFireAnim(ourWeapon)) { if (weaponAnimAssoc->animId == GetSecondFireAnim(ourWeapon)) { - weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, ANIM_ATTACK_1, 8.0f); + weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, ANIM_WEAPON_FIRE, 8.0f); } else { weaponAnimAssoc = CAnimManager::BlendAnimation(GetClump(), ourWeapon->m_AnimToPlay, GetSecondFireAnim(ourWeapon), 8.0f); } @@ -1929,7 +1929,7 @@ CPed::EndFight(uint8 endType) RestorePreviousState(); CAnimBlendAssociation *animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if (!animAssoc) - animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); + animAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); if (animAssoc) animAssoc->flags |= ASSOC_DELETEFADEDOUT; @@ -4146,27 +4146,27 @@ CPed::RemoveWeaponAnims(int unused, float animDelta) CAnimBlendAssociation *weaponAssoc; //CWeaponInfo::GetWeaponInfo(unused); - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_1); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_2); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE_2ND); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_3); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_FIRE_3RD); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA1); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_RELOAD); if (weaponAssoc) { weaponAssoc->blendDelta = animDelta; weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; } - weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); + weaponAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); if (weaponAssoc) { weaponAssoc->flags |= ASSOC_DELETEFADEDOUT; if (weaponAssoc->flags & ASSOC_PARTIAL) diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index e457189a..9c668cf4 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -333,7 +333,7 @@ CPlayerPed::SetRealMoveAnim(void) if (!curIdleAssoc) curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if (!curIdleAssoc) - curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); + curIdleAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); if (!((curRunStopAssoc && curRunStopAssoc->IsRunning()) || (curRunStopRAssoc && curRunStopRAssoc->IsRunning()))) { @@ -406,7 +406,7 @@ CPlayerPed::SetRealMoveAnim(void) delete RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_IDLE_TIRED); CAnimBlendAssociation *fightIdleAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FIGHT_IDLE); if (!fightIdleAnim) - fightIdleAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_ATTACK_EXTRA2); + fightIdleAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_MELEE_IDLE_FIGHTMODE); delete fightIdleAnim; delete curSprintAssoc; From 26bbbe003761490d16a75e4f4e06199e8bc47b70 Mon Sep 17 00:00:00 2001 From: aap Date: Tue, 9 Feb 2021 20:02:29 +0100 Subject: [PATCH 054/113] fix clouds --- src/core/FileLoader.cpp | 1 + src/render/Clouds.cpp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/FileLoader.cpp b/src/core/FileLoader.cpp index 4d1cd921..bf017256 100644 --- a/src/core/FileLoader.cpp +++ b/src/core/FileLoader.cpp @@ -317,6 +317,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname) buf += 4; if(model.numLines > 0){ //model.lines = (CColLine*)RwMalloc(model.numLines*sizeof(CColLine)); + REGISTER_MEMPTR(&model.lines); for(i = 0; i < model.numLines; i++){ //model.lines[i].Set(*(CVector*)buf, *(CVector*)(buf+12)); buf += 24; diff --git a/src/render/Clouds.cpp b/src/render/Clouds.cpp index c7554356..e3a8c86e 100644 --- a/src/render/Clouds.cpp +++ b/src/render/Clouds.cpp @@ -265,8 +265,8 @@ CClouds::Render(void) for(i = 0; i < 37; i++){ RwV3d pos = { 2.0f*CoorsOffsetX[i], 2.0f*CoorsOffsetY[i], 40.0f*CoorsOffsetZ[i] + 40.0f }; - worldpos.x = campos.x*rot_cos + campos.y*rot_sin + pos.x; - worldpos.y = campos.x*rot_sin + campos.y*rot_cos + pos.y; + worldpos.x = pos.x*rot_cos + pos.y*rot_sin + campos.x; + worldpos.y = pos.x*rot_sin + pos.y*rot_cos + campos.y; worldpos.z = pos.z; if(bCloudOnScreen[i] && CSprite::CalcScreenCoors(worldpos, &screenpos, &szx, &szy, false)){ if(sundist < SCREEN_WIDTH/3){ From 12330e38cb3c2a023bc1327cb89afd19efed0a43 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 08:57:51 +0200 Subject: [PATCH 055/113] Controller menu --- gamefiles/TEXT/american.gxt | Bin 423450 -> 423838 bytes gamefiles/TEXT/french.gxt | Bin 467876 -> 468076 bytes gamefiles/TEXT/german.gxt | Bin 459590 -> 459742 bytes gamefiles/TEXT/italian.gxt | Bin 456886 -> 457046 bytes gamefiles/TEXT/spanish.gxt | Bin 454562 -> 454854 bytes src/core/ControllerConfig.cpp | 50 +- src/core/Frontend.cpp | 819 ++++++++++++++++++++++++++++++++- src/core/Frontend.h | 29 +- src/core/MenuScreensCustom.cpp | 41 +- src/core/config.h | 3 + src/render/Font.cpp | 40 +- src/render/Font.h | 5 +- utils/gxt/american.txt | 31 +- utils/gxt/french.txt | 10 +- utils/gxt/german.txt | 10 +- utils/gxt/italian.txt | 10 +- utils/gxt/spanish.txt | 10 +- 17 files changed, 1002 insertions(+), 56 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index 1721705d03c59c549e692d13d43d2b048c48505c..f4afab9eb0f61be5dc3a9315887d4bc531836844 100644 GIT binary patch delta 5253 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 E0AX?LK>z>% delta 4855 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 P=oVWB)Al`g*t*mJ^J{vr delta 4311 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 Ys%1pcO^3PGa=J|;6UX*tXW0a_0kRXCe*gdg delta 4366 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 delta 4872 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 diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index 7f634619..727ad06b 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -2416,7 +2416,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act #define VFB(b) #endif -#define CONTROLLER_BUTTONS(T, O, X, Q, L1, L2, L3, R1, R2, R3, SELECT, RSL, RSR) \ +#define CONTROLLER_BUTTONS(T, O, X, Q, L1, L2, L3, R1, R2, R3, SELECT, RSU, RSD, RSL, RSR) \ {{ \ O, /* PED_FIREWEAPON */ \ R2, /* PED_CYCLE_WEAPON_RIGHT */ \ @@ -2576,8 +2576,8 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act L3, /* PED_DUCK */ \ L1, /* PED_ANSWER_PHONE */ \ VFB(R1) /* VEHICLE_FIREWEAPON */ \ - nil, /* VEHICLE_ACCELERATE */ \ - nil, /* VEHICLE_BRAKE */ \ + RSU, /* VEHICLE_ACCELERATE */ \ + RSD, /* VEHICLE_BRAKE */ \ O, /* VEHICLE_CHANGE_RADIO_STATION */ \ L3, /* VEHICLE_HORN */ \ Q, /* TOGGLE_SUBMISSIONS */ \ @@ -2618,10 +2618,10 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act #define RIGHT "RIGHT" #endif -const char *XboxButtons_noIcons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("Y", "B", "A", "X", "LB", "LT", "LS", "RB", "RT", "RS", "BACK", "right stick left", "right stick right"); +const char *XboxButtons_noIcons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("Y", "B", "A", "X", "LB", "LT", "LS", "RB", "RT", "RS", "BACK", "right stick up", "right stick down", "right stick left", "right stick right"); #ifdef BUTTON_ICONS -const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "BACK", "~(~", "~)~"); +const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "BACK", "~H~", "~L~", "~(~", "~)~"); #endif @@ -2630,11 +2630,6 @@ const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O #define PS2_CIRCLE "|" #define PS2_CROSS "/" #define PS2_SQUARE "^" -#elif defined(BUTTON_ICONS) -#define PS2_TRIANGLE "~T~" -#define PS2_CIRCLE "~O~" -#define PS2_CROSS "~X~" -#define PS2_SQUARE "~Q~" #else #define PS2_TRIANGLE "TRIANGLE" #define PS2_CIRCLE "CIRCLE" @@ -2643,11 +2638,11 @@ const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O #endif const char *PlayStationButtons_noIcons[][MAX_CONTROLLERACTIONS] = - CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "L1", "L2", "L3", "R1", "R2", "R3", "SELECT", "right stick left", "right stick right"); + CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "L1", "L2", "L3", "R1", "R2", "R3", "SELECT", "right stick up", "right stick down", "right stick left", "right stick right"); #ifdef BUTTON_ICONS const char *PlayStationButtons[][MAX_CONTROLLERACTIONS] = - CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "SELECT", "~(~", "~)~"); + CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "SELECT", "~H~", "~L~", "~(~", "~)~"); #endif #undef PS2_TRIANGLE @@ -2669,11 +2664,36 @@ void CControllerConfigManager::GetWideStringOfCommandKeys(uint16 action, wchar * if (CPad::GetPad(0)->IsAffectedByController) { wchar wstr[16]; - // TODO: INI and/or menu setting for Xbox/PS switch + const char* (*Buttons)[MAX_CONTROLLERACTIONS]; + #ifdef BUTTON_ICONS - const char *(*Buttons)[MAX_CONTROLLERACTIONS] = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons; + #ifdef GAMEPAD_MENU + switch (FrontEndMenuManager.m_PrefsControllerType) + { + case CMenuManager::CONTROLLER_DUALSHOCK2: + case CMenuManager::CONTROLLER_DUALSHOCK3: + case CMenuManager::CONTROLLER_DUALSHOCK4: + Buttons = CFont::ButtonsSlot != -1 ? PlayStationButtons : PlayStationButtons_noIcons; + break; + default: + #endif + Buttons = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons; + #ifdef GAMEPAD_MENU + break; + } + #endif #else - const char *(*Buttons)[MAX_CONTROLLERACTIONS] = XboxButtons_noIcons; + switch (FrontEndMenuManager.m_PrefsControllerType) + { + case CMenuManager::CONTROLLER_DUALSHOCK2: + case CMenuManager::CONTROLLER_DUALSHOCK3: + case CMenuManager::CONTROLLER_DUALSHOCK4: + Buttons = PlayStationButtons_noIcons; + break; + default: + Buttons = XboxButtons_noIcons; + break; + } #endif assert(Buttons[CPad::GetPad(0)->Mode][action] != nil); // we cannot use these diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 4eae64b7..141f46f8 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -125,6 +125,10 @@ bool CMenuManager::m_PrefsMarketing = false; bool CMenuManager::m_PrefsDisableTutorials = false; #endif // !MASTER +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +uint32 TimeToStopPadShaking; +#endif + const char* FrontendFilenames[][2] = { {"background", ""}, {"vc_logo", "vc_logom"}, @@ -151,7 +155,14 @@ const char* FrontendFilenames[][2] = { {"downOff", "buttonA"}, {"downOn", "buttonA"}, {"upOff", "buttonA"}, - {"upOn", "buttonA"} + {"upOn", "buttonA"}, +#ifdef GAMEPAD_MENU + {"fe_controller", "" }, + {"fe_arrows1", "" }, + {"fe_arrows2", "" }, + {"fe_arrows3", "" }, + {"fe_arrows4", "" }, +#endif }; #define MENU_X_RIGHT_ALIGNED(x) SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - (x)) @@ -526,6 +537,10 @@ CMenuManager::CMenuManager() #ifdef NO_ISLAND_LOADING m_PrefsIslandLoading = ISLAND_LOADING_LOW; #endif + +#ifdef GAMEPAD_MENU + m_PrefsControllerType = CONTROLLER_XBOXONE; +#endif } void @@ -1074,7 +1089,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) } switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) case MENUACTION_CTRLVIBRATION: if (m_PrefsUseVibration) rightText = TheText.Get("FEM_ON"); @@ -1539,6 +1554,11 @@ CMenuManager::DrawStandardMenus(bool activeScreen) #endif switch (m_nCurrScreen) { +#ifdef GAMEPAD_MENU + case MENUPAGE_CONTROLLER_SETTINGS: + PrintController(); + break; +#endif case MENUPAGE_STATS: case MENUPAGE_CONTROLLER_PC: case MENUPAGE_SOUND_SETTINGS: @@ -2280,6 +2300,9 @@ CMenuManager::DrawBackground(bool transitionCall) break; case MENUPAGE_SKIN_SELECT: case MENUPAGE_KEYBOARD_CONTROLS: +#ifdef GAMEPAD_MENU + case MENUPAGE_CONTROLLER_SETTINGS: +#endif menuBg.topLeft_x = 14.0f; menuBg.topLeft_y = 39.0f; menuBg.topRight_x = 636.0f; @@ -2948,12 +2971,19 @@ CMenuManager::LoadAllTextures() CTxdStore::AddRef(frontendTxdSlot2); CTxdStore::SetCurrentTxd(frontendTxdSlot2); +#ifdef GAMEPAD_MENU + for (int i = 3; i < MENUSPRITE_CONTROLLER; i++) { +#else for (int i = 3; i < NUM_MENU_SPRITES; i++) { +#endif m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]); m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); } CTxdStore::PopCurrentTxd(); +#ifdef GAMEPAD_MENU + LoadController(m_PrefsControllerType); +#endif CStreaming::IHaveUsedStreamingMemory(); } @@ -4896,6 +4926,16 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u if (changeAmount != 0) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) + case MENUACTION_CTRLCONFIG: + CPad::GetPad(0)->Mode += changeAmount; + if (CPad::GetPad(0)->Mode > 3) + CPad::GetPad(0)->Mode = 0; + else if (CPad::GetPad(0)->Mode < 0) + CPad::GetPad(0)->Mode = 3; + SaveSettings(); + break; +#endif case MENUACTION_RADIO: ChangeRadioStation(changeAmount); break; @@ -5037,14 +5077,14 @@ void CMenuManager::ProcessOnOffMenuOptions() { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) case MENUACTION_CTRLVIBRATION: m_PrefsUseVibration = !m_PrefsUseVibration; - break; - case MENUACTION_CTRLCONFIG: - CPad::GetPad(0)->Mode++; - if (CPad::GetPad(0)->Mode > 3) - CPad::GetPad(0)->Mode = 0; + if (m_PrefsUseVibration) { + CPad::GetPad(0)->StartShake(350, 150); + TimeToStopPadShaking = CTimer::GetTimeInMillisecondsPauseMode() + 500; + } + SaveSettings(); break; #endif case MENUACTION_INVERTPADY: @@ -5510,6 +5550,14 @@ CMenuManager::SwitchMenuOnAndOff() m_bStartUpFrontEndRequested = false; m_bShutDownFrontEndRequested = false; + +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) + // Reset pad shaking. + if (TimeToStopPadShaking && TimeToStopPadShaking < CTimer::GetTimeInMillisecondsPauseMode()) { + CPad::StopPadsShaking(); + TimeToStopPadShaking = 0; + } +#endif } void @@ -5534,6 +5582,13 @@ CMenuManager::UnloadTextures() m_aFrontEndSprites[i].Delete(); CTxdStore::RemoveTxd(frontend2); + +#ifdef GAMEPAD_MENU + // Unload controller txd + int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller"); + if (frontend_controller != -1) + CTxdStore::RemoveTxd(frontend_controller); +#endif } m_bSpritesLoaded = false; @@ -5781,5 +5836,753 @@ uint8 CMenuManager::GetNumberOfMenuOptions() } #endif +#ifdef GAMEPAD_MENU +const char* controllerTypesPaths[] = { + "MODELS/FRONTEND_DS2.TXD", + "MODELS/FRONTEND_DS3.TXD", + "MODELS/FRONTEND_DS4.TXD", + "MODELS/FRONTEND_X360.TXD", + "MODELS/FRONTEND_XONE.TXD", +}; + +void +CMenuManager::PrintController(void) +{ + // Don't print anything if controller texture is missing + if (!m_aFrontEndSprites[MENUSPRITE_CONTROLLER].m_pTexture) return; + + const float scale = 0.9f; + const float CONTROLLER_SIZE_X = 235.2f; + const float CONTROLLER_SIZE_Y = 175.2f; + const float CONTROLLER_POS_X = (DEFAULT_SCREEN_WIDTH - CONTROLLER_SIZE_X) / 2.0f; + const float CONTROLLER_POS_Y = 220.0f; + + float centerX = CONTROLLER_POS_X + CONTROLLER_SIZE_X / 2; + float centerY = CONTROLLER_POS_Y + CONTROLLER_SIZE_Y / 2; + +#define X(f) ((f)*scale + centerX) +#define Y(f) ((f)*scale + centerY) + + m_aFrontEndSprites[MENUSPRITE_CONTROLLER].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + if (m_DisplayControllerOnFoot) { + if ((int)CTimer::GetTimeInMillisecondsPauseMode() & 0x400) + m_aFrontEndSprites[MENUSPRITE_ARROWS1].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + else + m_aFrontEndSprites[MENUSPRITE_ARROWS3].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + } + else { + if ((int)CTimer::GetTimeInMillisecondsPauseMode() & 0x400) + m_aFrontEndSprites[MENUSPRITE_ARROWS2].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + else + m_aFrontEndSprites[MENUSPRITE_ARROWS4].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + } + + CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.9f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.9f)); // X + + CFont::SetDropColor(CRGBA(0, 0, 0, FadeIn(255))); + CFont::SetDropShadowPosition(0); + CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255))); + CFont::SetWrapx(SCREEN_WIDTH); + + float TEXT_L2_X = 85.0f + CONTROLLER_POS_X - centerX, TEXT_L2_Y = -14.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L1_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_L1_Y = 27.0f + CONTROLLER_POS_Y - centerY, TEXT_L1_Y_VEH = 3.0f + TEXT_L1_Y; + float TEXT_DPAD_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_DPAD_Y = 67.0f + CONTROLLER_POS_Y - centerY; + float TEXT_LSTICK_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_LSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY; + float TEXT_SELECT_X = 170.0f + CONTROLLER_POS_X - centerX, TEXT_SELECT_Y = 141.0f + CONTROLLER_POS_Y - centerY; + float TEXT_START_X = 130.0f + CONTROLLER_POS_X - centerX, TEXT_START_Y = 128.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R2_X = 164.0f + CONTROLLER_POS_X - centerX, TEXT_R2_Y = -14.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R1_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_R1_Y = 27.0f + CONTROLLER_POS_Y - centerY; + + float TEXT_SQUARE_X = 147.0f + CONTROLLER_POS_X - centerX, TEXT_SQUARE_Y = 30.0f + CONTROLLER_POS_Y - centerY; + float TEXT_TRIANGLE_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_TRIANGLE_Y = 55.0f + CONTROLLER_POS_Y - centerY; + float TEXT_CIRCLE_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_CIRCLE_Y = 67.0f + CONTROLLER_POS_Y - centerY; + float TEXT_CROSS_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_CROSS_Y = 80.0f + CONTROLLER_POS_Y - centerY; + float TEXT_RSTICK_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_RSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R3_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_R3_Y = 110.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L3_X = 94.0f + CONTROLLER_POS_X - centerX, TEXT_L3_Y = 162.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L2R2_X = 120.0f + CONTROLLER_POS_X - centerX, TEXT_L2R2_Y = -4.0f + CONTROLLER_POS_Y - centerY; + + switch (m_PrefsControllerType) + { + case CONTROLLER_DUALSHOCK4: + TEXT_L1_Y += 7.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 7.0f; + TEXT_TRIANGLE_Y -= 1.0f; + TEXT_CIRCLE_Y -= 1.0f; + TEXT_CROSS_Y -= 1.0f; + TEXT_RSTICK_Y -= 4.0f; + TEXT_R3_Y -= 4.0f; + TEXT_DPAD_Y -= 2.0f; + TEXT_LSTICK_Y -= 6.0f; + TEXT_L3_X -= 2.0f; + break; + case CONTROLLER_XBOXONE: + TEXT_L2_X -= 2.0f; + TEXT_R2_X += 2.0f; + TEXT_L1_Y += 15.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 15.0f; + TEXT_TRIANGLE_Y += 4.0f; + TEXT_CIRCLE_Y += 4.0f; + TEXT_CROSS_Y += 4.0f; + TEXT_RSTICK_Y += 1.0f; + TEXT_R3_Y += 1.0f; + TEXT_DPAD_Y += 29.0f; + TEXT_LSTICK_Y -= 20.0f; + TEXT_L3_X -= 36.0f; + TEXT_L2R2_Y += 5.0f; + TEXT_SELECT_X += 4.0f; + break; + case CONTROLLER_XBOX360: + TEXT_L2_X += 8.0f; + TEXT_R2_X -= 8.0f; + TEXT_L1_Y += 15.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 15.0f; + TEXT_TRIANGLE_Y += 4.0f; + TEXT_CIRCLE_Y += 4.0f; + TEXT_CROSS_Y += 4.0f; + TEXT_RSTICK_Y += 4.0f; + TEXT_R3_Y += 4.0f; + TEXT_DPAD_Y += 30.0f; + TEXT_LSTICK_Y -= 19.0f; + TEXT_L3_X -= 36.0f; + TEXT_L2R2_Y += 5.0f; + TEXT_SELECT_X += 3.0f; + break; + }; + + if (m_DisplayControllerOnFoot) { + switch (CPad::GetPad(0)->Mode) { + case 0: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 1: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA")); + break; + default: + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X - 50)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA")); + break; + } + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 2: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 3: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_TAR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_NA")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + default: + return; + } + } + else { + CFont::SetCentreOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_ITALIAN: + if (m_PrefsControllerType != CONTROLLER_XBOX360) + break; + case LANGUAGE_FRENCH: + case LANGUAGE_GERMAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(0.0f)), MENU_Y(Y(TEXT_L2R2_Y)), TheText.Get("FEC_LB")); + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.9f), MENU_Y(SMALLESTTEXT_Y_SCALE* scale * 0.9f)); + switch (CPad::GetPad(0)->Mode) { + case 0: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_RSC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE* scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 1: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HOR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_NA")); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 12.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_RSC")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 2: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_RS3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HOR")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_HAB")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 3: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HAB")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_CAW")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RSC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_NA")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_BRA")); + CFont::SetRightJustifyOn(); + CFont::SetRightJustifyWrap(0); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SQUARE_X += 5.0f; + case LANGUAGE_FRENCH: + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + default: + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X + 16.0f)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + } + break; + } + break; + default: + return; + } + } + + CFont::SetDropShadowPosition(0); // X + +#undef X +#undef Y +} + + +void +CMenuManager::LoadController(int8 type) +{ + switch (type) + { + case CONTROLLER_DUALSHOCK2: + case CONTROLLER_DUALSHOCK3: + case CONTROLLER_DUALSHOCK4: + CFont::LoadButtons("MODELS/PS3BTNS.TXD"); + break; + default: + CFont::LoadButtons("MODELS/X360BTNS.TXD"); + break; + } + + // Unload current textures + for (int i = MENUSPRITE_CONTROLLER; i <= MENUSPRITE_ARROWS4; i++) + m_aFrontEndSprites[i].Delete(); + + // Unload txd + int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller"); + if (frontend_controller != -1) + CTxdStore::RemoveTxd(frontend_controller); + + // Find the new txd to load + bool bTxdMissing = true; + if (controllerTypesPaths[type]) + if (int file = CFileMgr::OpenFile(controllerTypesPaths[type])) { + CFileMgr::CloseFile(file); + bTxdMissing = false; + } + + int txdSlot = -1; + + if (bTxdMissing) + // Not found, fall back to original textures + txdSlot = CTxdStore::FindTxdSlot("frontend2"); + else { + // Found, load txd + txdSlot = frontend_controller; + if (txdSlot == -1) + txdSlot = CTxdStore::AddTxdSlot("frontend_controller"); + CTxdStore::LoadTxd(txdSlot, controllerTypesPaths[type]); + CTxdStore::AddRef(txdSlot); + } + + assert(txdSlot != -1); + // Load new textures + CTxdStore::SetCurrentTxd(txdSlot); + for (int i = MENUSPRITE_CONTROLLER; i <= MENUSPRITE_ARROWS4; i++) { + m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]); + m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); + } +} +#endif // GAMEPAD_MENU + #undef GetBackJustUp #undef GetBackJustDown diff --git a/src/core/Frontend.h b/src/core/Frontend.h index c1c3983e..6457ce29 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -137,6 +137,13 @@ enum eMenuSprites MENUSPRITE_DOWNON, MENUSPRITE_UPOFF, MENUSPRITE_UPON, +#ifdef GAMEPAD_MENU + MENUSPRITE_CONTROLLER, + MENUSPRITE_ARROWS1, + MENUSPRITE_ARROWS2, + MENUSPRITE_ARROWS3, + MENUSPRITE_ARROWS4, +#endif NUM_MENU_SPRITES }; @@ -192,8 +199,10 @@ enum eMenuScreen MENUPAGE_MOUSE_CONTROLS = 31, MENUPAGE_PAUSE_MENU = 32, MENUPAGE_NONE = 33, // Then chooses main menu or pause menu -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) MENUPAGE_CONTROLLER_SETTINGS, +#endif +#ifdef LEGACY_MENU_OPTIONS MENUPAGE_DEBUG_MENU, MENUPAGE_CONTROLLER_PC_OLD1, MENUPAGE_CONTROLLER_PC_OLD2, @@ -275,7 +284,7 @@ enum eMenuAction MENUACTION_DRAWDIST, MENUACTION_MOUSESENS, MENUACTION_MP3VOLUMEBOOST, -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) MENUACTION_CTRLVIBRATION, MENUACTION_CTRLCONFIG, #endif @@ -668,6 +677,18 @@ public: int8 m_nDisplayMSAALevel; #endif +#ifdef GAMEPAD_MENU + enum + { + CONTROLLER_DUALSHOCK2 = 0, + CONTROLLER_DUALSHOCK3, + CONTROLLER_DUALSHOCK4, + CONTROLLER_XBOX360, + CONTROLLER_XBOXONE, + }; + + int8 m_PrefsControllerType; +#endif enum LANGUAGE { LANGUAGE_AMERICAN, @@ -788,6 +809,10 @@ public: int8 GetPreviousPageOption(); // uint8 GetNumberOfMenuOptions(); +#ifdef GAMEPAD_MENU + void LoadController(int8 type); + void PrintController(void); +#endif }; #ifndef IMPROVED_VIDEOMODE diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 770e8ec1..5b2f3d16 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -69,11 +69,17 @@ #endif #ifdef INVERT_LOOK_FOR_PAD - #define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_ILU", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "Controller", "InvertPad", off_on, 2, false) }, 150, 0, MENUALIGN_LEFT, + #define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_ILU", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "Controller", "InvertPad", off_on, 2, false) }, 0, 0, MENUALIGN_LEFT, #else #define INVERT_PAD_SELECTOR #endif +#ifdef GAMEPAD_MENU + #define SELECT_CONTROLLER_TYPE MENUACTION_CFO_SELECT, "FEC_TYP", { new CCFOSelect((int8*)&FrontEndMenuManager.m_PrefsControllerType, "Controller", "Type", controllerTypes, ARRAY_SIZE(controllerTypes), false, ControllerTypeAfterChange) }, 0, 0, MENUALIGN_LEFT, +#else + #define SELECT_CONTROLLER_TYPE +#endif + const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" }; const char *off_on[] = { "FEM_OFF", "FEM_ON" }; @@ -332,6 +338,14 @@ void DetectJoystickGoBack() { } #endif +#ifdef GAMEPAD_MENU +const char* controllerTypes[] = { "FEC_DS2", "FEC_DS3", "FEC_DS4", "FEC_360", "FEC_ONE" }; +void ControllerTypeAfterChange(int8 before, int8 after) +{ + FrontEndMenuManager.LoadController(after); +} +#endif + CMenuScreenCustom aScreens[] = { // MENUPAGE_STATS = 0 { "FEH_STA", MENUPAGE_NONE, nil, nil, @@ -567,11 +581,13 @@ CMenuScreenCustom aScreens[] = { #else MENUACTION_KEYBOARDCTRLS,"FEC_RED", {nil, SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS}, 320, 150, MENUALIGN_CENTER, #endif +#ifdef GAMEPAD_MENU + MENUACTION_CHANGEMENU, "FET_AGS", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, MENUALIGN_CENTER, +#endif #ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER, #endif MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER, - INVERT_PAD_SELECTOR MENUACTION_RESTOREDEF, "FET_DEF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC}, 320, 0, MENUALIGN_CENTER, MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER, }, @@ -611,8 +627,12 @@ CMenuScreenCustom aScreens[] = { { "FEC_MOU", MENUPAGE_CONTROLLER_PC, nil, nil, MENUACTION_MOUSESENS, "FEC_MSH", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 40, 170, MENUALIGN_LEFT, MENUACTION_INVVERT, "FEC_IVV", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT, +#ifndef GAMEPAD_MENU + INVERT_PAD_SELECTOR +#endif MENUACTION_MOUSESTEER, "FET_MST", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT, - MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 260, MENUALIGN_CENTER, + MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER, + //MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 260, MENUALIGN_CENTER, // original y }, // MENUPAGE_PAUSE_MENU = 32 @@ -629,15 +649,24 @@ CMenuScreenCustom aScreens[] = { // MENUPAGE_NONE = 33 { "", 0, nil, nil, }, - -#ifdef LEGACY_MENU_OPTIONS +#ifdef GAMEPAD_MENU + { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true}), nil, + MENUACTION_CTRLCONFIG, "FEC_CCF", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 40, 76, MENUALIGN_LEFT, + MENUACTION_CTRLDISPLAY, "FEC_CDP", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, + INVERT_PAD_SELECTOR + MENUACTION_CTRLVIBRATION, "FEC_VIB", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, + SELECT_CONTROLLER_TYPE + MENUACTION_GOBACK, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, 0, 0, MENUALIGN_LEFT, + }, +#elif defined(LEGACY_MENU_OPTIONS) // MENUPAGE_CONTROLLER_SETTINGS = 4 { "FET_CON", MENUPAGE_OPTIONS, nil, nil, MENUACTION_CTRLCONFIG, "FEC_CCF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, MENUACTION_CTRLVIBRATION, "FEC_VIB", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, }, - +#endif +#ifdef LEGACY_MENU_OPTIONS // MENUPAGE_DEBUG_MENU = 18 { "FED_DBG", MENUPAGE_NONE, nil, nil, MENUACTION_RELOADIDE, "FED_RID", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, diff --git a/src/core/config.h b/src/core/config.h index cc82f8d6..7adbdd63 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -320,6 +320,9 @@ enum Config { //# define PS2_MENU_USEALLPAGEICONS #else # define MAP_ENHANCEMENTS // Adding waypoint and better mouse support +# ifdef XINPUT +# define GAMEPAD_MENU // Add gamepad menu +# endif # define TRIANGLE_BACK_BUTTON //# define CIRCLE_BACK_BUTTON #define LEGACY_MENU_OPTIONS // i.e. frame sync(vsync) diff --git a/src/render/Font.cpp b/src/render/Font.cpp index 0f5930ee..35ed2e56 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -289,11 +289,26 @@ CFont::Initialise(void) SetDropShadowPosition(0); CTxdStore::PopCurrentTxd(); +#if !defined(GAMEPAD_MENU) && defined(BUTTON_ICONS) + // loaded in CMenuManager with GAMEPAD_MENU defined + LoadButtons("MODELS/X360BTNS.TXD"); +#endif +} + #ifdef BUTTON_ICONS - if (int file = CFileMgr::OpenFile("MODELS/X360BTNS.TXD")) { +void +CFont::LoadButtons(const char *txdPath) +{ + if (int file = CFileMgr::OpenFile(txdPath)) { CFileMgr::CloseFile(file); - ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); - CTxdStore::LoadTxd(ButtonsSlot, "MODELS/X360BTNS.TXD"); + if (ButtonsSlot == -1) + ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); + else { + for (int i = 0; i < MAX_BUTTON_ICONS; i++) + ButtonSprite[i].Delete(); + CTxdStore::RemoveTxd(ButtonsSlot); + } + CTxdStore::LoadTxd(ButtonsSlot, txdPath); CTxdStore::AddRef(ButtonsSlot); CTxdStore::PushCurrentTxd(); CTxdStore::SetCurrentTxd(ButtonsSlot); @@ -311,12 +326,22 @@ CFont::Initialise(void) ButtonSprite[BUTTON_R1].SetTexture("r1"); ButtonSprite[BUTTON_R2].SetTexture("r2"); ButtonSprite[BUTTON_R3].SetTexture("r3"); + ButtonSprite[BUTTON_RSTICK_UP].SetTexture("thumbryu"); + ButtonSprite[BUTTON_RSTICK_DOWN].SetTexture("thumbryd"); ButtonSprite[BUTTON_RSTICK_LEFT].SetTexture("thumbrxl"); ButtonSprite[BUTTON_RSTICK_RIGHT].SetTexture("thumbrxr"); CTxdStore::PopCurrentTxd(); } -#endif // BUTTON_ICONS + else { + if (ButtonsSlot != -1) { + for (int i = 0; i < MAX_BUTTON_ICONS; i++) + ButtonSprite[i].Delete(); + CTxdStore::RemoveTxdSlot(ButtonsSlot); + ButtonsSlot = -1; + } + } } +#endif // BUTTON_ICONS #ifdef MORE_LANGUAGES void @@ -369,6 +394,7 @@ CFont::Shutdown(void) for (int i = 0; i < MAX_BUTTON_ICONS; i++) ButtonSprite[i].Delete(); CTxdStore::RemoveTxdSlot(ButtonsSlot); + ButtonsSlot = -1; } #endif Sprite[0].Delete(); @@ -1437,6 +1463,8 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif @@ -1488,6 +1516,8 @@ CFont::ParseToken(wchar *s, bool japShit) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif @@ -1612,6 +1642,8 @@ CFont::ParseToken(wchar *s) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif diff --git a/src/render/Font.h b/src/render/Font.h index 57f1814d..b0cd0a27 100644 --- a/src/render/Font.h +++ b/src/render/Font.h @@ -111,6 +111,8 @@ enum BUTTON_R1, BUTTON_R2, BUTTON_R3, + BUTTON_RSTICK_UP, + BUTTON_RSTICK_DOWN, BUTTON_RSTICK_LEFT, BUTTON_RSTICK_RIGHT, MAX_BUTTON_ICONS @@ -137,7 +139,8 @@ public: static int32 ButtonsSlot; static CSprite2d ButtonSprite[MAX_BUTTON_ICONS]; static int PS2Symbol; - + + static void LoadButtons(const char *txdPath); static void DrawButton(float x, float y); #endif // BUTTON_ICONS diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index a91a3274..9bc1c96d 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -6484,8 +6484,9 @@ Press the ~h~~k~~PED_FIREWEAPON~~w~ button to ~h~fire~w~ the sniper rifle. [PLANE_H] Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. -[PLANE_4] -Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. +[PLANE_4] { reVC update } +{ Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. } +Use the right analog stick to accelerate, pull back on the left analog stick to climb, push forwards to descend. Left and right to turn. [HELP55] Press the ~h~~k~~PED_FIREWEAPON~~w~ button to attack the chef. @@ -13980,8 +13981,9 @@ To ~h~pick up a bomb~w~, simply maneuver the RC helicopter next to it. The RC He [TEX3_37:SERG3] Pushing ~h~back on the analog stick ~w~decreases the rotor speed, causing the helicopter to~h~ descend. -[TEX3_38:SERG3] -Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. +[TEX3_38:SERG3] { reVC update } +{ Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. } +Pushing ~h~forward on the analog stick ~w~increases the rotor speed, causing the helicopter to ~h~ascend. [TEX3_39:SERG3] ~g~To drop a bomb press the ~h~~k~~VEHICLE_HANDBRAKE~ ~g~button. @@ -14400,6 +14402,27 @@ NONE [FEA_FMN] RADIO OFF +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS + { end of file } [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index a817ff41..a1bd7baa 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -6688,8 +6688,9 @@ Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ ~w~pour ~h~tirer~w~ avec le fusil [PLANE_H] Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner. -[PLANE_4] -Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner. +[PLANE_4] { reVC update } +{Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner.} +Utilise le joystick analogique droit pour accélérer, appuie vers le bas sur le joystick analogique gauche pour monter et vers le haut pour descendre. Gauche et droite pour tourner. [HELP55] Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour attaquer le chef. @@ -14262,8 +14263,9 @@ Pour ~h~ramasser une bombe~w~, manoeuvre l'hélico radiocommandé à côté. Il [TEX3_37:SERG3] Pousse le ~h~joystick analogique droit vers le haut ~w~pour vitesse la vitesse du rotor et ainsi faire ~h~ monter l'hélicoptère. -[TEX3_38:SERG3] -Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère. +[TEX3_38:SERG3] { reVC update } +{Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère.} +Pousse le ~h~joystick analogique droit vers la bas ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère. [TEX3_39:SERG3] ~g~Appuie sur la touche ~h~~k~~VEHICLE_HANDBRAKE~ ~g~pour larguer une bombe. diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index a2c86414..449e4993 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -6640,8 +6640,9 @@ Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Prãzisionsgewehr ~h~abzufeu [PLANE_H] Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel. -[PLANE_4] -Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel. +[PLANE_4] { reVC update } +{Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel.} +Benutze den rechten Analog-Stick, um zu beschleunigen. Ziehe den linken Analog-Stick, um zu steigen oder drücke ihn nach vorn, um zu sinken. Links bzw. Rechts für Richtungswechsel. [HELP55] Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um den Küchenchef anzugreifen. @@ -14262,8 +14263,9 @@ Um ~h~eine Bombe aufzunehmen~w~, steuere den Helikopter direkt über sie. Der He [TEX3_37:SERG3] Zieh den ~h~ Rechten Analog-Stick zurück~w~, um die Rotorgeschwindigkeit zu erhöhen, der Helikopter ~h~ gewinnt dann an Höhe. -[TEX3_38:SERG3] -Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe. +[TEX3_38:SERG3] { reVC update } +{Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe.} +Drück den ~h~ Rechten Analog-Stick nach vorn~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe. [TEX3_39:SERG3] Um eine Bombe abzuwerfen, drücke die ~h~~k~~VEHICLE_HANDBRAKE~~g~-Taste. diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index 84804cb3..5d8f65f4 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -6694,8 +6694,9 @@ Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile di precisi [PLANE_H] Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare. -[PLANE_4] -Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare. +[PLANE_4] { reVC update } +{Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare.} +Usa la levetta analogica destra per accelerare, premi la levetta analogica sinistra in basso per salire, in alto per scendere e a sinistra e a destra per curvare. [HELP55] Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per attaccare lo chef. @@ -14271,8 +14272,9 @@ Per raccogliere una bomba, avvicinaci l'elicottero radiocomandato. L'elicottero [TEX3_37:SERG3] Sposta ~h~in basso la levetta analogica destra~w~ per aumentare la velocità del rotore e ~h~far salire~w~ l'elicottero. -[TEX3_38:SERG3] -Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero. +[TEX3_38:SERG3] { reVC update } +{Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero.} +Sposta ~h~in alto la levetta analogica destra~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero. [TEX3_39:SERG3] ~g~Per sganciare una bomba, premi il tasto ~h~~k~~VEHICLE_HANDBRAKE~~g~. diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index 836d062a..5deb3f89 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -6485,8 +6485,9 @@ Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ el rifle de francotirador. [PLANE_H] Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar. -[PLANE_4] -Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar. +[PLANE_4] { reVC update } +{Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar.} +Utiliza el joystick analógico derecho para acelerar, tira hacia atrás el joystick analógico izquierdo para ascender, empújalo hacia adelante para descender. Para girar muévelo a izquierda o derecha. [HELP55] Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para atacar al chef. @@ -13952,8 +13953,9 @@ Para ~h~recoger una bomba~w~, simplemente dirige el helicóptero RC hasta ella. [TEX3_37:SERG3] Si empujas ~h~el joystick analógico derecho hacia atrás~w~, aumentarás la velocidad del rotor y así ~h~ascenderá~w~. -[TEX3_38:SERG3] -Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~. +[TEX3_38:SERG3] { reVC update } +{Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~.} +Si empujas ~h~el joystick analógico derecho hacia adelante~w~disminuye la velocidad del rotor aumenta haciendo que el helicóptero ~h~descienda. [TEX3_39:SERG3] ~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~. From bf8687590eba833a0d24eae13108019b0105909f Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:03:13 +0200 Subject: [PATCH 056/113] Add textures --- gamefiles/models/frontend_ds2.txd | Bin 0 -> 329976 bytes gamefiles/models/frontend_ds3.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_ds4.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_x360.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_xone.txd | Bin 0 -> 328360 bytes gamefiles/models/ps3btns.txd | Bin 0 -> 126760 bytes gamefiles/models/x360btns.txd | Bin 126760 -> 126760 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 gamefiles/models/frontend_ds2.txd create mode 100644 gamefiles/models/frontend_ds3.txd create mode 100644 gamefiles/models/frontend_ds4.txd create mode 100644 gamefiles/models/frontend_x360.txd create mode 100644 gamefiles/models/frontend_xone.txd create mode 100644 gamefiles/models/ps3btns.txd diff --git a/gamefiles/models/frontend_ds2.txd b/gamefiles/models/frontend_ds2.txd new file mode 100644 index 0000000000000000000000000000000000000000..7cf6c41f3891ac3cf1dd41def0f2b4630cb75688 GIT binary patch literal 329976 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%0Aqdd%O8> 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%0Aqd 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 literal 0 HcmV?d00001 diff --git a/gamefiles/models/frontend_x360.txd b/gamefiles/models/frontend_x360.txd new file mode 100644 index 0000000000000000000000000000000000000000..f09ce09056a1ad1c33b170ad794d31ea0ed4cb92 GIT binary patch literal 328360 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 a0~L&h$7pyUhrl3953sGG|Nk=!AhQ8~DO;TY literal 0 HcmV?d00001 diff --git a/gamefiles/models/frontend_xone.txd b/gamefiles/models/frontend_xone.txd new file mode 100644 index 0000000000000000000000000000000000000000..a9c297aedb6d161e41ce14c7394b4a269d5864da GIT binary patch literal 328360 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 literal 0 HcmV?d00001 diff --git a/gamefiles/models/ps3btns.txd b/gamefiles/models/ps3btns.txd new file mode 100644 index 0000000000000000000000000000000000000000..290af8d77229e16ed6fb3ba05410251458ba98a6 GIT binary patch literal 126760 zcmWe*U|^7W&&crqKeGTM0|NsK0|S^X$H2fK%D})-A^_oov^Z%a#g{KVzhZ6%sXlN)G zn17oA%3s9*=HFmL<$E$6(156aaE76p=>;fopyq+?D}o4t!jszmK{pRQ{?0IX&Jqw; z0J{ieKgj(@J{myWe^r<1|6Op@GJxE#%LGcxApcKN(T-x40;~TI;cGZ8Gh|?32>Fl7 z7lrZR>d(wz23ZC&ucCp0;s5S!&bK9a8^GZi9`WD|gI|*x1G5824aj_md&y5f5dD+j z>Gcdl=Tr`P1Ca5s_?*TgX#n=$R8>wU4EI9)!`aoQ`M*9K?jMeWDvF_3IT>K;IS#TY zh9ZRzn7;rKUK%G|6|aU@Ak=%YC^9fH($$pzsKbNH}nYp^8bhf%yT* z!JzO!k55AUGYp>7WKK>1hdD_9|1+M`Bsc|_LFP|2RprI7AL`%CovDiP;o__?d5)7T zn!L#VJISKSz`#&|B(KQ8@FNt7ugSomkIYwOU|`^c%O7MGEC9tn)V`HFQx*Syy%qtJ zhlj_ioaSu-+#5jYB|Ide;0%N3B^3`QHDbf#F2hU_&xt9VO#(j0VIED z&1zE=4X=l*=QydV$-vBO3RBNAE=`-O#1H)a0 zASKI5OfPZyKNM7cdCr2T_x~M=p+YK-Tp<5W6%|#5*#{3_X!wKtC#uQ{PY)a?StJ=4 z4miNnb9k{Rs&F#m%pd6H5#nogwP}jS$JfKnKgr_Bz`)E1<7*sD)x2^iA^^sRn-_X( zQSSw|Tu}NA3k!=e2KmBYc6$p4IJ{tpNUNPvYu$o~us z4Dj%QyN7K5gX;^F@aN^_M3fIFS#bD2qDeJ^Ngd?>h=_=oPzH}C6^}*m_C+Xz=Y%Cl z?VtZMmpJgL2?~MIzpAL{RG5Fz-Oq7SMUj(N6_FoLvKTrzG$6`rCl*B}Mou+c`q9lJ z#6Q#Js#sqiKObfu$4M4LMrNe^e=t=sAmYXqm^|FPv>R=?w^r$b{2vn*7G})gfw#SP zmtksw=fo+Vpz=>NG&J=8T~H%c0GuBf7?=?8xu{hUEk7zE%WIxgRlE|B01ppP`ek6^ z42QW7J$*p=i1-E7cMTDU`tziUp(rb;-3%!oIZm=_GB6xSfSCs>U%!0)`~UwL28IL% zHU&`pF*GzJ++~=cqj^cm7UZ9h(9lrA^`GSgj+0Z5Ao7Ex0CVTW6p(qGtfuhv0CF#= z(E+pHV`r)&uW5KZj1S76DD~G#X2lAm@*N}}`VSF*VE%q2{y`Q^UNrR#3=MGqg6i9V zD_6h5?1RVm?gKnG7Wi6&+?x;)5`KmuqDkF{{Pz7_hRFq<8>d7d!h<1!!Ek~E$b2S7 zR-EC%y{Jvm6si8wIO(d%z z?->R*orp~;p!D645D|8Ufq};$Vv#z`y@cYMki0R2=LF>b5jc76oX`R@|Nj|g0cOu> zD&X+ooeIe>3<69VPT)4OCfxm4+P}#4Jt#e~BE>h7|3FshfXruLXvp|~hJnq(dlJOI z6=9)g7#LVy+;|Kx&y)z{Z$kbhRsIZv*aQir^79>okb>v5DSKEH85qFj$8P3?qHVIb zLGi=2H8k}98HNqHo)Gsltir;d*|21yil-4s{ermA(02?IR6K?5s)Nh}<=-<52kg|5 z>?75^^j06ruoETygff6UgvgKRd>4iYyyY{s-4AZ)gVP;~9VW z|DS;&BqSt++WrH#_dF5(Immd!AyCr{+@FK+n=XR91nTcl+kRrrBiH|+@qi~k6X5>2 z%W%@%bCL?U6AtnZsDG~FX#=jmLqo4Jf%($t;}1NL{(I;vhX1Q_FK^4`?f{iHp`oD( zXBhmM-hcuJdHkW8$r2(jO0Yhq)c=tF2_pXPGMp6mo{H+f3PVVLJaj5A)Bn4mZX*NO zzo0R4Gc%YI7$D|FfZE@yau07yfQ3&4D14OE8<-nFK?DkKV*QJ*9v1)T z;}3TkJVm{yn}ECmPOtyZbP6)FLEN*Iml?Hv#n1rn4};rV3|#R33(@|?5grip7ND5l zz`&&X|BN4#dIK|Lyeh6B;S7T>lllc_@Q@WL;Q{kMX#7EKye9jj{^fE&YF z|Bhi|3FkBgPEdUp8ah?<|2uHjW&njh^7sS9K16%*TXw1@t0H4wf7y#Fee!lEdSw)Y*)>I5G?J_GY!mV7<8wii+m7hy-|efWk){X*@3+5`J+1nx(jE79jZ-WFIJIVBv`?f4x(h zq|`Zq#S;`8p`l?I_1hVSlM`i5PLx6T-%x<76Ixql*-!=lKk zIvpuIHU}ezM|g@ch!6K~SWc>DLCke{{{mzlG5*DH&lymEy9wMr##X=M^FJ>yD?ELY z?tf4YLiCr+Q_>8ti?YJ=1G;~qe7HO)e_xLYfQJVpe=xzzAEMnu(EpwjTs-F-LB#*b z2|S$>B|znes;Vh`e1VXC5ce^_-3v`V;rT>sH-2HEu|KBl8GT@vp0M0L>Q$s`l zzXO%7pz#M#d?LmlK_0JA4@K}J#uZ9B&1!ou-m^2PB z!~19G^ZywJ$qC$@6OsCtY!etyLi*dBoT~8g5RiQi4v6yKJViy5k=JxO!o4br z4h1pSV0@5&k;kWrNl(b(5uT$83JYqj| zQujmjcVPYn#VT@r0P{b({9T4g37#vb1c1hG!2QWH3nlWmrk#_(KBL@duE3tVrXhAU?8vr1}@8 z9^B9e=TpMt4=FiCAZ_GhJmU`_Ly^-Xv3&IY8mK=Wfiz!ym*J;Aboc?>f4eK_sf3r$ z@L$<;5(}uR0jod5;JFCYzarK>u=uB!dQg9j#d8AE{F&z*(EJ&we7LHLXupB#E9CkZ zXL*CtpJHGD_b(%u!1+5oCL&@cXg=2)F@HsG|DxM>hQV_Js{c7BFhJ)ISy>VO$LU{a zeS%Z|j02O31Ct79J}x2xKQ;oL|}RF{3&$4h*cFaUxYJ$3CDkvYQZLO`j3c+2|L5!eMse;JwEqfy0@O`1V{t6 z^6dhVnB1KjWEn8#?|4YQ1CQs~_M2kI#gLW;ER0t>`!@ zg~JGD-~TfVp!RDDs61feRE5tM;S3MZd``h5$oxh^O!(d1D$bKsJcU5@Z)j+!C}{lh zh8$%4D>Rf7w0?@P`(Wc!p%o6`@u>hN3z+-PFfa;$5R8v#FN4~%i18$w=Ne9-p;zJU z&Di&vUcSzV^#E}HoGD-hST(JL`IKP7CLwGF8 zAoC#&72%yn_*HD6MVfz?0b-V!y-WAQwj`B3ZV8X zX#K(&1_ovW5Q2~AV)wuF{TGhl@h7PHweK^%c#-CtYu{@)fy{%27rJ}k{4?H7stwE* zp!g4qC@46?z}#@B05KkRhN0n!H0MNc0tBT`(D)C75$B0&9vf+qDUcTjQz=eIKqoD(HpGs4G@|DTZ*U_LnkoL@M3iO4Td_o4eg_Wf~7 zhK2(Lu=wA$^{_-ueSJMa|HJ#+sOdj+tp-YXfc@{}nTiqrp#BhaKK4LCL>Ojz_MDUh z9ls7;$_bi}Fj7CjlmJQ}p>YWfXI6p20)%1fCz&TO!seUtlpoUfpIb699V&*oXVx_i zr5VD_8@E^isvg8K{LDi2iuLgy<{`MVj~E^f=U z2D!f>Dm3)&ZqRJ8BvN_R2_LV=mw(~u8B%_L%TrMKaW`$Ug6Adh+BtA~`G1B%Am4Km zxIMrGaUXa-70G?5{PG43(0nQ=KP5zkhMr+K(5za8yFXsepor36C`X&GMCYGjSUeTA z{nI%S)cyn6CyLbmgZmGfUWw+P@n%wwfV6+Y!0o^H$5gx!?LTz)VDe{72E_<0zQK`4 z#rfmm*8U+id`A5bYX47p0!v@e_TLdu`e$VoMH+7ejes)1*SmoFLktX9_~7!FK>;qm z%7J@p0(3krA}n+!gU2QnU)=eZ)cB*e`ZEm79~e*0gpUV-hmUSgqk!MQV@X5*k~IF1 zU!DhwXR`6=_yg7VmyC`-fXW}_@t4u@hoL-+7kN*K0 zf57QJ?D3Cx`~lRz2lXGI;}59)dFXs4yuZJjVcY2V19JOkXpBFA=6gZo*_8Ibi0yyR z`@Sk@70UQ!y7oOPf9`uvuT>2R5&vm4{{-^CsHmtYz5H)+OvB0aYAC$_ z9rL^^2zmWu%=71#3?TnP%M;LeCushBX!sv>{DG%)B4qqQ75DhVwyiH5O+o7;p#FVd zovQig|9|LuE834gpvOOm4_;mX+Mnq;NrhZKZ2SSLKY&`}4^ZE-`HIR3z-QUKZC84y74^$(-t z53u=Eoc$YUeuc|J<}bnfKS1-B^jiM_w;$a-*!y3j;|~PZe}L*A>WsgPjz6eC7kq;1 zC(!yOTC9H{G5wE@KS0wzdV67X{R3n?fY|mFvF)G1HvT}Y|IpJ1I-gko54Q0K>iU1^ zjXzM!|Cs4v_^yA*0iD^;N{}r^`3VH zEAj6aBD9}~-tw6HmmaB1V8*lm;N(;ePUQ0@JH?qL6Ts(@OjYG%Cb|EK-v6UFAHIKy zMG>?qT`v*jZ4`e?9CwzbW^}V3|1tIYBEpeKE<^Yq<0VW;L`sjp&goHB; z8BA&ki1Rq9>3`(#0{I`bUy9iD1MyENe1A3AzgKnP=ZDn3zdQ%DDF|jBNImF00~nup z|0fJu|BH$u=Ep$c2RZ>2=0A}C89?WoK-0@`^FPk`gZdZbf8_K@6XO|w0IlZ;2?@CZOAny( z7kNDjAwI}Op!^OwPqIiF#s~H1R8HdEKaOp`Hb^_T|F;Uf9;WF(NC0F$%zfy5sQUtN z$)l@B=imFzz;NZt6%_x2&Q}7v-&2koWIlrfsQmVv6u}DFe;p7CI-hl?Drh_169rIf zF;o*YzoD{?7rcKlH1scMf9Iqd@bf0Mh}*9XJ-Jsr`9I`8==}ea6L>)WM?U|aX6}QwPibcUnFeNy z24)M;dSOt1_zXiulX?a9{a^du(<_vj89rVkeV@ZAG=li?hsblF@dV`lH-}TGE)!D! zTf-?7>3lYu=NwLW<~O?eKd=Y6e+cqFD7*=}4;ufV^**Ysi2F1^;n|Q-5CGE; zopmnzrg%|`yMELAlA!){EvKo zA1M4nLc-wZ%fs{25b;0Uy-4XH^eW;!L-2Yzr1jb{&pDhJ4iv<|!e>>Gh7)+bGE_g@ zydmO$P<)3@RfV7TS^NI_UPcB6`1!1$_-#mtfv=y#>EA)(e?sF8=<>1e*A?^fBF0y1 z-|K+R-$X6{km4VdUr^WYdwPY23|#()r#JNQA802epqQA|gUS?H?7dNAU3^SpNXj{tvlw<;q=#sS`XuPN@N@4-E|s z0p0Hb+K&Zl4>BzUp9cfpj|JjG&x09s{F~78F2U!~FicQ6ImsA4-vsk7to;w;gWA7W zknUdq`5#pOo?-ZjavsbXwDVvFAOFBSQqFrJY5c($6lxS;!s8DZ=YzxI2V^U9{~r`T zp`oIpF5vNjNh}b)1E~KxNu?5W@-4hSTvQIy3|;RAIgb*Y{K4Z3cNyxHGAFTkfRupD zKf~Y|1RlJEst5O{OA!4>*!`Rk`y9zWuN0KtkoSLq_@MF!mw%DmH|YpxBB-kkcK?5d zjV7LxRKVwjg@#^L{eQ+&D4!X6zr|86hW~dt!FMNs+`ATZKOg)&{U-`5LG|f72k80z zPZY91{4<;3_dV2s`Wt6Fjo|0o#XVs7&yb~bauV!3_s|${_*6lz$N+^OA@{@NLH;Gi z|7RFH=ZI*6diap|1dXqxz|QBJs>_TRe_&Ar1q!S^NVEFr%mHY4DKLQdYs^$Jo+QB8 z0V)qeL&5i9Y*N3$tOJWLn19jvxcmX`*IY)vMavt1OQ$%~1X8t3! zzCxPs2am^u-d>b@fh`9d9$_({`TkETRZQRv3GxptJYfEZt^WY=LFxa$(!*o9x3_SD z&L0j9oob2_zo7I>s{81z{>%ZU1JLs#LHAR>W4NTOJBcq7G#dn}PtpBEMZ-z->Q(sq2vGm~Ktlukz5$%>JJY}nTK@qm ze+$6tKMI)CBACGKO;J(N&@&8*6Bs2YfQl|idHxQz{)M#t|CIV4-Ti?*8cw02qHzC$ z&VK}DVpw{LdG6`uP!T~m{_jH0p9J|o;lP0dXBZAJ+Z~h@tEFo- zoWjGxFxLZ}Vc#eZ0g?VM z&(UxS0i8DqH6QLi(E6taX7GIw2?+%ep!;yt3Xt=E=L8wgDM(R`W;XT#4Qh6{~(U!e$aRfgC;^f$o~ut2tFwMB9PSMbl*&d&WQ?| z;QRa{VnV`JF?bwO@rUg129|N27sR6;$3MpZ5UbgHAs{`2YWZNPajuA;xnKJb(O8 zlit94ds;3i_E=4?Ligu`!UI&J5^?_uwf%=~-d#|jyLG~{wKb&E>psenXc|Idy|ATzYK(POJhGFM~ zBhd3{LFwr(!z2aI^;7nM&c}x47Xg0M^I;hn?o9)qH_gDX8hSs-1n~K`3=CRVLHFe{ zFr6wswamj-_Iv^+gCw%`!PHI{S$Q-gUp795e znfT%lm;C7c7oO8V^T)980rgiw=O2UmFQfNgjNX4iaeV|m{{c3CPwVq9z~fn?_g_HQ z`;6Xy0ZYH2{=i_q{{m-wkIeHQhT8oX)b{^SyZ?e}{s*sL2lcN|$Dcsw!GYSFu>1h( z|2hn!`!7iJKYV>8X#9!0bK>az7tsE}NICxj)c*qYA7T9`So@V!KC$N?;7p(B;|b_| z8nu5w{zo2v8udS9ev!QRM?L?60e1f6Ain^Huocf{bZ$abb1qGn{A5r(8 zP~v}3`weD4Xg-?30dXHE$bAe*`w2kn#~DELXVCbreP4Obfq?`ziE4cuf^({2j9X1GL`^9RG0p(ai_>58eOx?&JIo-amo3 zzqI!K?|Y1l4Dj_EAo-B6F!*{8konBasPnxH42bbu(E1qa_+L?gNl^gdfB5*!B;>^NWTP?fgH1D)Eoc|CsUFSIor33_s5X6u)6%A@Kb)nCfZe zf6ECRo)cYQ_5XjQ^B)+8$N3MvHy8MV=a&m2!a~v4-;bXEFudBcgROl%>Yl-!zDQaB zP(;J?A7JG#vFQcWo<$xXg6W5>hj0RM!Rr}8{W%p+JyiaG0_Q>0gR4WZeiF}rfZs=g z?ml!r$U&g?CL#Yq+%LxsQxD?9&VK;yH+{!|@BD|a@be!a_7i#j!vQvM{}0Rg4-L4^ ze*l>enx6r=PsNYP62xa<6os!h0`nOd;Pm@;_)l#BQ|vQ^@r{xPQ!w+#l3%LfwyypAYJf<2%0rw7)%cDlfeM3u>Q-BJF8sO`(LFe&-_Lso=d+_v0L;s`phcuk<^*`?a_w-VodKG>jIH>;x-Y*30UxChd z2%SDn4Ca2&d2`6?%R&9~7^L;qpzvejM1()6KN}HHfH|HsNc=DJT+{37R8e^U8?=9f z0crjGu4@`jVo3f2rLP90@f*;7f6#m-EPP_$XL_;nGQ#5@lwJ}F5a(qKMEv6$f2e&A zTEWEtU!M$iZ$tw8d;_?9q3Hn>-=U$Q@bVXw{!KZN&qML_Vqj>1$2TavBEk^kHE{C= zN&Nr5r|Bg+bt=yEKWU1FQ)u`#c>0fhf83In8F{=-!wLC*KG1%I7^L(8_b)X3;QT@2 zf6)F4(WzIF#@8axF)$$3@5?;*^b!{{Gl8XV^z$J=@gD|WCk&~-L44%$7F-@CB*4=H zt^E%-A3eMW8=pq;KfL@u4Zi;U{~2)m2Ymjhsj2BySb7{X{zXrJp!kny0`GSS2#5&V z&ET;}#Rv2J2UvgL3p`mvfCa8hVe*m@rK=mhje}@qN41@fz zIR63Ue^zjZ9a4V6;+v%Lhe3D#Ln!?IT#)}j?O$;J*Yged%mYyW9>jk#1>{@E`X12v z^OGQ4@c6(d3#w1= zrhv@?$yb5+XFQoedxAjx&=(9K{gYH?Fhj>9DjM!GR4cum#Nr9sZv_u;KPFpJ{fn+1 zm;XWjt=U-sn)(LE*Z*=w&!Qy`;QjI7^TF;af{X&Y5BWY#nw8gQW-!C{_g5TXVEAu* zdsFTuwhT~fG&D4<0+hZ~3YaWFjsnFGvFQWme~^D$Iw!)%oBq#K^bA^Z0OH@Ns=SEv z5a@f}CeHA@%K%M3O#UVzSGg!!Icp>eqTU!eXpzVQc8|1C5M zF@LO+3_71M6m$Rk?#-b4KW>1^ldzD8h}{gHk5qgR<4~%>`wQslIdcPIJ;n9Co?f8wUYI@B>{D+1j zjSpxzq3+**9fjO~-ZVwSDFmti3>t3$jVHtG2d9Uti1RjU-**KuG97pTlLwuTfUF zg|80*jV~}F^|wLm9~hW8d12~7@?jAH@bgNs`5)>02XLJXsvp4Xe{i1vzzk1caPy$$ z8OVL4q<>KUM2=6;`X2^n#QZ<#ybE!$Y1d%>0r}7203v*@?**-wLga5y`r_r~gr`qX zeh3JNz>@yK_uqie14u|nC^*9q(4?Axs1MFCbWV`)oZteh|Nfr=pZ@?pf0&aO_xa0E z|09hjfJzt!I3GQ{(D|V80w$#Us6qY-3qzc*36|&F3O5hrKjif^bKhrrF&v14%Y)p5 zTt2|<+uhK6a{;e4X!I*0A|&h#===vi#Qu0C22XJR0`7l?Ne-OTr+9(tKhde7(EaM5 z{Wzc&7xCwz!0m^o7rOC58_uEUoiH>wB-~|~prsk4tO{~HD16ZCKNuh8|1%7h6GS|x zJ%P2K{;v|fz?D038mK+NsX7%N-k|l6$m2(J^B;P6g3o^d-S+|VA%nwz;|pxLx3=km z+Jg~c;h_6I4k7Qyhxr%gKNuh8e;6Moe}+L^fV*=lB0OdaJ8-FpPlANURap990=4HE z7#QH?5zWE_)Hz^a1LtQ3hK7p&E)8tCx3?LB{96$g8hVDop;^rrk-pLWgNu*L|LE#L z=V3@7o&WHTK}f-K>J)!aegU7)bB5soW9MAR`3>AxL&4`cFbmuUmkta}uv;BKTn!CnKrTPRLqi$PFfdPu@r0Z&1JVzUuAlSa<6B_9 z+Dugb5>$DIdbobkGYk#?K>ow#o>I_sDjxTN>__$=247T^fu!+=%=8S34uBXv|AFfJ zH_kAOp8tS){srd*2F?lK{wnhPDB0yPX#CcJNd?k=h=`!|`3JE4N~pYo$q&{2k1+S6 z`xi9+qB45^133MLhUzl^KjWEn8+x84sJO?*ho27{n$d7~x1!^u6b|r8HBkTN{~3k} zj3+06&(mfiW^Fg>2U!0H)V{>G{vKz3J_8#3<4FLuC&D5U8qUmQZeVO+1Yc+i z2@mE8u=WWP=T}hsg2$q462!k1;h}fWcurFBoWufm&zVj^W;V!pt|>1wyg!d_zs&PC z!=xs}cmb%t5*iv7@&6s{{6!W;(E5xs3=GT$AOzj-O?CgHw~xox-L++o60PTNa zZn#r`-2ZEMBF#Bb0Li}-86+X&UsFjq|8(yA&vQ`EKV20BKA#ure~V*_1nTQ+YUuC( z24;(bN8t8jK}1aW8HR!;^(uFecfsRpM?k4YWczYLEla02%)8<<~^n;t;>Z(KYlg0zGC z2mjA_P6Mq60Hxols;uz&K#>0u0ub|!;dcyXBd>=Izhg*KzS)%y$Et<~`1);-d%*qW znaawOBseF4^AF_yk4Gxri2F7PrH6M6E2nr)bKnGxuY>#hcfnbk0W`mXy#51ZA80=Z zEdKxfeK7-^-=XQ-?24- z<^Yodbp1zyLqh}Tyn7o4W(`n;g4~Dh{|*MvNlQGZ!Snb3-5V2yza{X4!cSBb_xvZw zK79V)ayV5Hbe}QIeenJTG<-g#sB}$6fmh5G^v8}Z&*xBL@0y*Ar&vg`j_GF|A;2l0w#5k|05z| z!a_m&uY51T`&S(do)c0$XTkaZ&u~uQ>6{3@&r4O+6n_5*dU_o)@o#)%+1gucbV2DK zbU!P4{zvEkXP6S;IT1Sl4?3>`JU@v!|4+#OVpm)>uY`oa#|zD_xG4TdS`S1jKm3lW zqPZ#J{tr<7g1!7>U`T+@|2H%^B%EPjU@~Z623;KkuFuf@i_Qnl|8tx~J`aLXfcfME zaC+cmMU00L@;`cgKy5y#zQy!EC*%K)0~`|-EWzU~0pRlra5e3glFDr|lqwjM&0;`$Ff zVcwt%s*f2M8Z!RxX6U%NB^P|2$AJjY`VIz`7dJk`{j0>_0UE!D^GWqDsp`)#h)ocH zuZIY6fUbww0ct;i*L&?|PAJ+YdmB{#azXA3!GB-p%!VzX@j{UL1@Ykh6DpoT?^Qta zFOc;P42RX>_OZg(E5PD|RQFR$Jve?q0}zn@5;#48?!yRW&_uZpBNXlaPISHtLj>0N z1DTJ!e*(k@ov%fy`$<{jbYCS%2qb@(;lFa`Bo^=*ZxA1JKODw>j91KXdC-1+6;DL_iPG>VRX@l-DxF`! zof43H|1)@|g2o#_^*eaK>KV^T6|nJzty~QM&ulaY`4yC2_Ja0rzXNM!0F}?6L4DBt z3`Cwq5qw@A@_r0ZfBTH*CQAl3NdG=+0mFZWNucoZ0NpPX8X68+U!TB4c7KzQ|3UXr z#vt#%Se1Eu+S&lfegx3{>}MoF&Iiv|fI8_Em$%UR3%$Ju=cDg8IODlV1={}(4U2$` zM}U^#L&s|f`43$l6u(DKPUQf33LL+yGH-|J1~P%l!_cXwtcd*=bh>YpP6E%}!2FMW{{ehF2DJYKv|bAy|48?bGLmrrD53BfF#luDe={k7mV`jdM-2a; z0o^|diGOBh-1`p*`4?S&!2Exgfun(eLjg2?c;G;T1E@cW>i^COJf0Jg@;~DQMoGwh zdYqh`w9WrWRVTIZ$}BP2d69$H2e| zKi`LH@rj;ZK=vW_Uqrz6Ux4f{0PnwGU?yk(1uVUz`yZVTN*_;<(#IJF1_OqT6A<_3 zlruT_sYp%&xd%GlfVh8?X(edABj~X^5!@y8588y5V7=EJNzxfYk|AoRO z6!i0kWTADt!G*%yUn#ug!?{Cvf|4q)%G+KSAf$MLtBFk0A3L zbRI@n!GAKxAEfUm3H;S%g!>n?U%%O(IK=#ijz7peZxSe|1Mj~;8-F2h z{GsxkhEwNLEazR468}^je*m2i(pZUbPo@`#)1UwU|NkEye_*y49e)@de}Im+lG@)q z!!SDjfZV?y9e=>TKWPMvKajryVs!jrbo>FjJ_y#{Bvc-Q=7&euKa8$_0F7sJj;?=L z1?%4s>TjXT)4KnSZXcXKLdGB9{zdQqjgavNoc&STKz&ED@aXu%==j6v_yc%; z7?giN^L^;$2WWlE=>Ch*{THC|meKtei2EgQ_HWSp`#AWt9)F?s`Ug<_52gJV)L#Dp z^8ZlUe?jl{52WS?tm%Jr{R8|y1@!$Gqx&zQ>-lh$r#RCeWPSeV{tG7thSB{Ot0?a8 zV78AtCywsFzKTOYm0I!F>Dhl5p2U;I2+q2>YY(5#ZUN*o1ai1V){pkPy|Np?`;q@)@`g&0N zZHS!z0O}v{ax%f&TcG{|gTewNzJ?P66XO0d(0baima#OTK_;O{SlJK+W$g2zm$-EvgOHK{{ZTL52f)3oZ&;}`UjBzhtl{1PXE(r{R2+> zaFowj(?6*Gf~p7gzemr1Kf* zkCwjwz8ZWVJ=DLmu4y<`B}8D}Ck>T{hsO{(|Ka;y4JT31c@a?e%RC32sDZf8)#kaU z7ej+b0j$0IzFNZxbY2IH5BD!5eqr}-4%PD?cH2B>VBpucho09tL1or828JJh{(;VW zU|<+M{{g;U=M2MOJO80F1=L?93y+RJ44Ux=(D?zQ=TEL8eLXvJ{}R-G8zSQm@cIK< z|4^GhI{pA{uOX+8(ea1T@rTjz2k?0Zp!x=MUOutsKa7q)fX`nYJ%5r)^%bc9IePvi z8SNcX!ynQ=9dzp-K=D61{(u-?8y$Zb9e)6=zXoU5A$9&_Whq%>4;Q+JE0mOZz823Mn z-hYw6z&3jS1!(+b^!|&{`!D{F-hVNA|HbJ27fAE*qx&zA&*MbjpEB(CUyy(L0|Nt| z@rVEa85kHs5ci{l`AGMf63YkgPw2wX1|4HQn z2UtC0XlN){zaP_Cn0{D%(}Ev@pcR{fNQr{#{ z1>&FaV**`x2v)xUbic9ZBb5V8Q1cQP-Z9)#J~@fS19YEKXlQ5%*gZu|7BKgqyO&r# zC_J(GA7uU#&xuSh^Z&a%+?G4rgwfNBfgv<>s_y?Y9}PfqAouEm?iWSx4^o>C4=)CW z1kn6;xr*^50nQH4YPQgD(0!Ahn^Xdr;P>m1>VJ@bpLkA@0Qm_N|NmWX9`l{OffH>0 z)v2og?}B0z5?>$|)%(w+hSxg=aNNMxKa{H|PZHql0lPOWq5yQCtx5%xEzCc-!UGon zcNscGyeEcmBGR*D0w{%o;+K<=34WhDynjoodugry3nG^sW)TY%C-OhiEe=>AQW3MN%pdH|g#C2(>A2i*T> z4B_{0@^X@Y{sYMWqDcP#|3C5^I6p!C2a*SsH!%N6-`8+bojMhMze4T%&vP6O5P!c0 z&hR;Nfaw4O&jC<;COCk`9~?mU59%QN&pCnFPyl=l71({C`)1h^z~wC`1@~`){D;r~ zweLN>K-DYE|1r-woTg4yh3Bu@_gz5^2OQw*adG+&8lE`ik@sITIAFPd(olfe68ZjB z>fFCcjQ>G32+aSn??E++Dm=e{&U1)KaDcDR#_2y&{O^Fx|D6+fI44RV(m$gB1LFQo zUYPqxwV#mxLGsAy|MDCSCsEO<@cS-n-*1}YaNq#t{zo}~(gEZC%`*(16H+|qs382$ zIf18hA`2+Lu&SEE-9w)L5%ayE@(ww^A^u0mgZQGM2tFwOk=3s&)^G|9LC6#B9_0Hs z3qbd81~936EQ0r^VD%x)|92Ut7I@B_;ti_*!0rJ}P_j*61ce6!6ZP(+CEERj(l@$1 zcs~N6wD+zmV|IP$dQr@c1;W{6qKu8HSS+VvzgW#?l)&Z%@eu z=gz5Dq3h*AM#>bru7u+TFM4ovDk zxcBR$`ya*!nF^{8&M-($;P;#XPcQ$Cg*R~Co|X$r54@oJNI~g?8G1h}1CuVz!vh?@ z3T1f zQt+HVB?8nRf##P4{?557AonrpUWM$ZV4H9Q#AjgOhNhnh6CiwswUGNa9l-8qU|`7l z4+>9)G;4@_16co=vPqEpI3I+EzGG-m@tm|u4P;*gxPQo?td8U!Lhi>U5A{C-OdiAs z)z75z&oGEhIN~`8T%LmTpJ8B7U^qD+#t#8|&wM64e!zScwEH;!Pezh&*aPw(x$Yt4 zesIGF-0ox+5M^LsC=mel)tLoAeVZ64n}dOYfk}{op(LX;H>qfF-M_K=QLEQR5FF9Z>a?RQ#CE!uaU+(VGwIpQ;SQ@dsSt3-a$s7=M8IALQSW zIQ{_h|41EwfcbxBrEgGtj*dSJ|Md^B_#YjA7@6xIVDbNdh>kztoKG7e z;}1Cf5AA=0&wn6c{licje;~^Lc-B84(*MvLf57Q~BG*44{69MWFcQ~4z~X;&`~ft7 zidZi(I{ttj9;4$A`1W6nfbj?NcVOVze*r6h(8m)<<%9aGqvH>w;}1C7L+I-TN#)aM z{{<}lgVOKl`iGIX{{j~Oqw61r=Kc$+u74PU`!A@y{sFZ9m6H1}K=b>A_Md=8=wa)X zhuZoFLiHOV|AXX5*FPZkQ-Hz)ynY+n9ssRpK~5jE-hTlr|3}w9jLiKPu=q#s?~IN= zjE+Cx8*ji&FOdBgu=F(i);|oc`!_MeACz84_g{e8Z#d3>UfZPPy?}9Bpsj>cniuZ4Vmkfczmzw84!2D0E@dr@13au74O^|G>xy+TY8-Fnaz2Gc&AzOsKz!E)VWc;n{ye?fn<%_QUyPu73cPuS044 z0q$RD{}s+h_CFQZKfujLw-3rE6#pQ3YK}kPbkFGe2WE>1CUsDHF2HmC1ET&Lndd*i z{7F`5&|WOP%u{sCNG*jn03-<$uiZpw9XSo9Bug{QCA+Vdp{^gnX{ zn}q!rpz?Ke{DE`CoIeRK|IUo=zZl(rF%N$J-G3^bKRG)7py4EX6|vrj?E5!I#~)~N z{v@pYL+{U$${zva4}3mDvi^Z=|Do5f!({vcG``KiFnI32 zfR%sf{aI4^!+QLoC^IoHJtq|uR%Bs1od19xUy%FmCb59r3tHbllL53o;t==_N(8^@ zB1~QoERVP!58b@M!UyG_&`?px{h*zxpzBJ&_j|zZ^N$5d-LcoY2rvE-?Q# z1C+lCbU)`Ll^Ze?k5^@)2@hUFcO^=KpuWQ498uF8E#-P<$ixm!aipf6Wtx|NrC7 zVe6Yg=c6$&AkLeIm)Ca_p!Z8MFhqdv+uXg)`L+aa12{axBOaV#@MBVAU~T|8h!){- zhT-H?Zb8tEsF3?x{-5!j#v^F}_TN-hP9~W9;qHa{51kM8UxPyeO#Q`P6-8D~M!5cs zy{ekmuSAf3-`*MTCe;H>383%@i%4iV!{EcD=D>V_-0(QV;5jd)b0X-<9a#KMli-}d z2r_@Fs46GS{pkK9#4l)d)eILmWrgYgd42&SD869)i@m9u2?s!T|3K0UZ_ZPV|9`)K zfyomxA1=Rp3-hfRyca<34G)3eKdMG-c-&>!IK^{%3gZ6JyNnJXy`cQg$VB}8qoDY1 za7YkVPHDI zzy?mA2@VYmp!>&64lq3c`2iH(=;cKyxV)VKFQ5O1>;}rRn=r-FA+CRLDsVj?0U${BnXsdymj*K!8W2`rvd zTwv+rKau_i+Yh?m4{G1WRu@H6R!(^O1eI?LNaYMBy*C@-pp4TknlEx*-3DgoK6R zx_=QC|L+*4CUDLa@dn**2R@GhbU_?5WIq-|Q&S_%{To_U6m- zn1BQa$o+jh3ZVF7XgK6_hJk@kgMrxw=0EiE51oI8p>u+S=aeHb_5aUEPGIPqm;wsF zm92>TNcC%%C@_WohsQ5p=@JEo0p!0cIilbIvVS)N?~Mh%;QI@UB0|E?Fa$KIdy#%0 zBh3G27+3@tcTPaMABG`;!Ek~ED14bXRmr}e6+J(Z%|FAyc4o$A@O_UB2@zpu7#Mgo zE-0(R+>ai=r1D)DJSQOU|3AaPkifWeLJQ3N|7Vy5m_4U~?Pt=R3cX)afJws%+(y=f zFtAy8L++z&0N*dl!1Ch4V|aOHjN^V)kRjOWe^SE(rXJ*; zP|?uPGYsMrB9QLCe8(W9;5l!~9(eh&n>nFqo9t~+{^8mh3c62oL#`*p{S2$H@K-Uo zY|Dk*pSmDEH1saR1QpMqx9XtVUPB=FZLSC1M@en}(8|0}2Fr=a=_ix{C zsqG(9%>&&Zj_QBT2@ISQ!2KUqR)qiOg73RW__y}`svu6J_Id65NmIc4DWL5so9CKd zq2VzF|IawU{T~4KKdAjU^!yL<4<{3-#RBPHgW{Wk0n}o_&Ig^pbpRw!Xa9rOFP+Q> zB~@7do22reAD*AV@~Hd?EcFcF0UA(#|9^%P++G9KPn6sr53jG!I5epiYyzkMfQXo| zGYsB`RLzPh~G=SWPp1#j8c+TLL6aYzs{RVhfgt<-pJAB5cya=`{Yq4O?F<8(PQfGaeb)^M zG2wT2t2j?m@e~5pzoDU_qG0#Q!Q8`%)jjC$1(lzm_y`THa5%%@%cLH_WC3&E83slH z5Q6bx?Imz|#mETnPr~B^nm=*!&lE6OFz_UR>;sR7&17z1Y+wX8#vtLrJb|%uF4%ue zoL@oh5grTZ{oV}~;h}fWfb#>=ctEEhGaJOero7DX{x?qh(cSlsfk}aZNdeUVb%5;u zXEtD923JrZ_fXyc==Oug2OF3zK<%%vh=PJM49pF83Yg&S<1-8mPoy~~f)gOfJ^#;i zPGpdrzz7Pzsj8gt@f)K3i*Emb`@ezNqTmrY{}x2Vgr8w3Xi~3o2PHRfemld!IZ@&@ zBYgb${~1XEW@vul&k;*F)^Dm_Q0Jk4N<;UH$$qJsA zSTsQi29iG*!0rRNhlv>Xl{aWiRPi(d<)?%wP=Dz_vuYKh{f}NBlrt!z^f$}V`U~j% zGYpHTqPBlJCxY64Ap1m-+J9u{-!tA!>JdyTApeHNL`2MFcz;aA3(@{TcMm3i#$-^8 zz`_sa-~azXr+bEq!uaU&#PW%4|B>&1Nc#`u|A+{X|Ebgd1Nk4cK55kd;QAImenDz@ zK;nPO6IgnIw*QWR(myM!=vCzQ1af;9)V{#V2baGL3UK*V4%}N4PMd+ui--sdoyp*_ zNyQg;{w3D^=7vC7s{EW9d5yW*#G@ R?nBluDk{o=JpO>p1^_85lM4U< literal 0 HcmV?d00001 diff --git a/gamefiles/models/x360btns.txd b/gamefiles/models/x360btns.txd index 27837c2fd71f7f86ab653b5b42358598b3285178..8d8460af656449496660ff297adc49354da1675b 100644 GIT binary patch delta 3663 zcmZ2+kA1~Gb`voM1_qh;j12$(GYc>>Ffgz%Fo4-|3=9mS3=9k<0uVk(E(XfpXp$x% z#VmkJdh-^6GyxUd@*E5d3`~Ly3@JI&4@NQCY_3vN5KtpRd474`oBtTf38)gG zzBC1_yxK{g7}w+&f>r+tQXopT5m#c z+)@N}`BLIkLtVaA0dI_(93zk-uHlzAd5%|p@|N$LHa~lQiB%%@y@pe0=v2=C|2-$E zcurD@dG6`;wYi~T`UO754hfm(o?ej;85v=+GS5M(!wM!Byff8i7ht$`je+4WFC$!c z?fc4eP4BYS!qnS5H)uKVBPjuFng+;hMn+Az>e%<+_d5LY()@phfk}aZZ-LEoMUMKq zgoeot?=>`p=Q?uO{{8zGVU&gw2eax`7(e#C@Z2Paq$HTp8cvFg2#4A{&-7woaEO5z z&7@HKo`IpDuD*V9!v_zx%5xe{olmEq6J+d?uzAkm)L0oB`XB25OfL?nKmY&#-(2uf ziw#enoNmIwNJJ1Wnq2hGnADJ(F*)PC14#ieV{*oa1SEeg+g$Qd4X^XJNPwMR#D*`9 zUyu@IH#B0N6CDXRCu*+o_KAEB4m<^;^e?D%Pqd|)o>EMib$L?&pDhJ7?|MM(dN0Q7ej+b5zM^z z)f!GAp`oFZ4ZdENcw+OMfq`G&KJ@BYf_t@titw3yzJ%ow1CUVO-4EyJh& zWAx&Hl;EME(=UK^r!WTKEKjz7NMXcVl5gKqO(-C*l2(EjF?LMmP!X7(A;9QBdO#dN z_1*T46vj#Tit_CyJ&Y>sIE(S=9}*cc%W+&$H!YbFvmD1B5%u-cQW$ZU<3xn}9L95u zawn}prPJ?w3=CKc@dZDz72?@1Rc?ag6v2ZoBtTf38)gG zzBC1_yxK{g7}w+&f>r+tQXopT5m#c z+)@N}`BLIkLtVaA0dI_(93zk-uHlzAd5%|p@|N$Lwx>li3b9W9@uq6}rvyefiQ4y? zUZGc2ng0LxoTTD8Nd?RgNN|{bfse5RBKwt>5k)pMBw_l8L`DmZ+V>0$w!Dm-2-(>8 zyH>ASh2U#AIXE~#%+jcRui?bV$cSWC?EBTbR;~JfhJi_efk^>mT3tng!?a{Z4UOOT z7#MW-{{4$ED$|RBfm0O02OC`gb|%bdxI<#!gH$&}z>JQ0&cIMmQ(r$Vh0%j8ut&ow zAawdULB=i#kegUTLqlQ43bbfAg@lHNPXCa?*fIIX$GYv`QW;fP@#NC!CLD|;1?r;d zpAs3(ND8|d(_bVpI*=45Gp4^tW=ufx>$2%zQW#r^^U@XxbT4&G{`EEvZ))fQsenZU zF>zdltbv%AtD5}l1IP^;PL#%&Cd7NPjIve?3=9mQgm+b+pZWh8e6JXt}s)z(u z``*)wf#E+q!C~?>y<$Q_Lno;yZoe4ExSSD|Q$aCM0ZKX`Mjj|ZOq%@bZ5}9^Cr$qK zp$aK_mov68nuJbeRYf>a!zmP8At5;tg|F!q8Xgle-9VR7dHUsa#-&CeUyEKvc6V10 z0|Nt6#De^BAOU8@wyo1wxid;nKbpaKSR53f-2C>T|IdJebAk#eKtKHWw|#ylV>Khb zytKs<5;KSb3gp{i?`;z=h_{Dpf+SFcZr>8ch_~L_Zj#N|!UidRuvJw7O;oI^iWoac zDaJ^ts)`sbrgtPW2EfcGrquJ`fYeu^q0=vb^`|ff;H6p~l9 z83n*aB5^f)5o5<>4iy1Vfka9T1@=lZ;{jCPZSP27oP^i?COwQQ?2wdzqgnC-7P?4f z70!mn4VYqLqT&W6;Xa4)9HX4);I3~LFs|kpk`>2xleLT|c!s9ax9lAPDI<>2lLue1 iVseg=sJ?1x0jNi|{ntH41pz)L9%fMc0NfB^;sF53b%D76 From d6068c421d436c05a8aa562bb46b3242e5d0a78a Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:08:02 +0200 Subject: [PATCH 057/113] Add undef --- src/core/config.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/config.h b/src/core/config.h index 84e8e603..152ba336 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -479,6 +479,7 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #undef RADIO_OFF_TEXT #undef MAP_ENHANCEMENTS +#undef GAMEPAD_MENU #undef MUCH_SHORTER_OUTRO_SCREEN #undef CUSTOM_FRONTEND_OPTIONS From 5f3e68ec45cd7cd30e94719a9ff9625bb7545e5a Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:16:04 +0200 Subject: [PATCH 058/113] Save vibration setting --- src/core/re3.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 3388b56a..779a7d13 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -409,6 +409,7 @@ bool LoadINISettings() ReadIniIfExists("Controller", "HorizantalMouseSens", &TheCamera.m_fMouseAccelHorzntl); ReadIniIfExists("Controller", "InvertMouseVertically", &MousePointerStateHelper.bInvertVertically); ReadIniIfExists("Controller", "DisableMouseSteering", &CVehicle::m_bDisableMouseSteering); + ReadIniIfExists("Controller", "Vibration", &FrontEndMenuManager.m_PrefsUseVibration); ReadIniIfExists("Audio", "SfxVolume", &FrontEndMenuManager.m_PrefsSfxVolume); ReadIniIfExists("Audio", "MusicVolume", &FrontEndMenuManager.m_PrefsMusicVolume); ReadIniIfExists("Audio", "MP3BoostVolume", &FrontEndMenuManager.m_PrefsMP3BoostVolume); @@ -501,6 +502,7 @@ void SaveINISettings() StoreIni("Controller", "HorizantalMouseSens", TheCamera.m_fMouseAccelHorzntl); StoreIni("Controller", "InvertMouseVertically", MousePointerStateHelper.bInvertVertically); StoreIni("Controller", "DisableMouseSteering", CVehicle::m_bDisableMouseSteering); + StoreIni("Controller", "Vibration", FrontEndMenuManager.m_PrefsUseVibration); StoreIni("Audio", "SfxVolume", FrontEndMenuManager.m_PrefsSfxVolume); StoreIni("Audio", "MusicVolume", FrontEndMenuManager.m_PrefsMusicVolume); StoreIni("Audio", "MP3BoostVolume", FrontEndMenuManager.m_PrefsMP3BoostVolume); From ca85e44c9e6aa0a21a637179b3cea6be66e08edb Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 12:21:21 +0200 Subject: [PATCH 059/113] Fix repeating pickup sound on revenue pickup --- src/control/Pickups.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/control/Pickups.cpp b/src/control/Pickups.cpp index 67e658c6..7bc88321 100644 --- a/src/control/Pickups.cpp +++ b/src/control/Pickups.cpp @@ -274,10 +274,11 @@ CPickup::CanBePickedUp(CPlayerPed *player, int playerId) { assert(m_pObject != nil); bool cannotBePickedUp = - (m_pObject->GetModelIndex() == MI_PICKUP_BODYARMOUR && player->m_fArmour > CWorld::Players[playerId].m_nMaxArmour - 0.5f) - || (m_pObject->GetModelIndex() == MI_PICKUP_HEALTH && player->m_fHealth > CWorld::Players[playerId].m_nMaxHealth - 0.5f) + (m_pObject->GetModelIndex() == MI_PICKUP_BODYARMOUR && player->m_fArmour > CWorld::Players[playerId].m_nMaxArmour - 0.2f) + || (m_pObject->GetModelIndex() == MI_PICKUP_HEALTH && player->m_fHealth > CWorld::Players[playerId].m_nMaxHealth - 0.2f) || (m_pObject->GetModelIndex() == MI_PICKUP_BRIBE && player->m_pWanted->GetWantedLevel() == 0) - || (m_pObject->GetModelIndex() == MI_PICKUP_KILLFRENZY && (CTheScripts::IsPlayerOnAMission() || CDarkel::FrenzyOnGoing() || !CGame::nastyGame)); + || (m_pObject->GetModelIndex() == MI_PICKUP_KILLFRENZY && (CTheScripts::IsPlayerOnAMission() || CDarkel::FrenzyOnGoing() || !CGame::nastyGame)) + || (m_eType == PICKUP_ASSET_REVENUE && m_fRevenue < 10.0f); return !cannotBePickedUp; } From 3c7a7bc8a7ca5a9bfff709fc53d3036597cc2248 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 13:29:02 +0200 Subject: [PATCH 060/113] Fixes --- src/core/Frontend.cpp | 13 +++++-------- src/core/Frontend.h | 4 ++-- src/core/MenuScreens.cpp | 7 ------- src/core/MenuScreensCustom.cpp | 9 +-------- 4 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 141f46f8..31580e0e 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -125,7 +125,7 @@ bool CMenuManager::m_PrefsMarketing = false; bool CMenuManager::m_PrefsDisableTutorials = false; #endif // !MASTER -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU uint32 TimeToStopPadShaking; #endif @@ -1089,7 +1089,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) } switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLVIBRATION: if (m_PrefsUseVibration) rightText = TheText.Get("FEM_ON"); @@ -2300,9 +2300,6 @@ CMenuManager::DrawBackground(bool transitionCall) break; case MENUPAGE_SKIN_SELECT: case MENUPAGE_KEYBOARD_CONTROLS: -#ifdef GAMEPAD_MENU - case MENUPAGE_CONTROLLER_SETTINGS: -#endif menuBg.topLeft_x = 14.0f; menuBg.topLeft_y = 39.0f; menuBg.topRight_x = 636.0f; @@ -4926,7 +4923,7 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u if (changeAmount != 0) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLCONFIG: CPad::GetPad(0)->Mode += changeAmount; if (CPad::GetPad(0)->Mode > 3) @@ -5077,7 +5074,7 @@ void CMenuManager::ProcessOnOffMenuOptions() { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLVIBRATION: m_PrefsUseVibration = !m_PrefsUseVibration; if (m_PrefsUseVibration) { @@ -5551,7 +5548,7 @@ CMenuManager::SwitchMenuOnAndOff() m_bStartUpFrontEndRequested = false; m_bShutDownFrontEndRequested = false; -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU // Reset pad shaking. if (TimeToStopPadShaking && TimeToStopPadShaking < CTimer::GetTimeInMillisecondsPauseMode()) { CPad::StopPadsShaking(); diff --git a/src/core/Frontend.h b/src/core/Frontend.h index fc09f2dc..112ea7ad 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -199,7 +199,7 @@ enum eMenuScreen MENUPAGE_MOUSE_CONTROLS = 31, MENUPAGE_PAUSE_MENU = 32, MENUPAGE_NONE = 33, // Then chooses main menu or pause menu -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU MENUPAGE_CONTROLLER_SETTINGS, #endif #ifdef LEGACY_MENU_OPTIONS @@ -284,7 +284,7 @@ enum eMenuAction MENUACTION_DRAWDIST, MENUACTION_MOUSESENS, MENUACTION_MP3VOLUMEBOOST, -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU MENUACTION_CTRLVIBRATION, MENUACTION_CTRLCONFIG, #endif diff --git a/src/core/MenuScreens.cpp b/src/core/MenuScreens.cpp index 72e19c49..20484389 100644 --- a/src/core/MenuScreens.cpp +++ b/src/core/MenuScreens.cpp @@ -277,13 +277,6 @@ CMenuScreen aScreens[] = { { "", 0, 0, }, #ifdef LEGACY_MENU_OPTIONS - // MENUPAGE_CONTROLLER_SETTINGS - { "FET_CON", MENUPAGE_OPTIONS, 0, - MENUACTION_CTRLCONFIG, "FEC_CCF", SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS, 0, 0, 0, - MENUACTION_CTRLVIBRATION, "FEC_VIB", SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS, 0, 0, 0, - MENUACTION_GOBACK, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, - }, - // MENUPAGE_DEBUG_MENU { "FED_DBG", MENUPAGE_NONE, 0, MENUACTION_RELOADIDE, "FED_RID", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 69af9acf..c4a415c2 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -629,7 +629,7 @@ CMenuScreenCustom aScreens[] = { #ifdef GAMEPAD_MENU MENUACTION_CHANGEMENU, "FET_AGS", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, MENUALIGN_CENTER, #endif -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER, #endif MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER, @@ -703,13 +703,6 @@ CMenuScreenCustom aScreens[] = { SELECT_CONTROLLER_TYPE MENUACTION_GOBACK, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, 0, 0, MENUALIGN_LEFT, }, -#elif defined(LEGACY_MENU_OPTIONS) - // MENUPAGE_CONTROLLER_SETTINGS = 4 - { "FET_CON", MENUPAGE_OPTIONS, nil, nil, - MENUACTION_CTRLCONFIG, "FEC_CCF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, - MENUACTION_CTRLVIBRATION, "FEC_VIB", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, - MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, - }, #endif #ifdef LEGACY_MENU_OPTIONS // MENUPAGE_DEBUG_MENU = 18 From 775db94a965ecf11c0f12b79d74b57dbe7f60c04 Mon Sep 17 00:00:00 2001 From: erorcun Date: Wed, 10 Feb 2021 15:26:42 +0300 Subject: [PATCH 061/113] Ped jump teleport/kill fix --- src/peds/Ped.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 12437dcd..ba09e8a4 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -2336,12 +2336,17 @@ CPed::ProcessControl(void) } uint8 flyDir = 0; float feetZ = GetPosition().z - FEET_OFFSET; - if ((obstacleForFlyingZ <= feetZ || obstacleForFlyingOtherDirZ >= 500.0f) && (obstacleForFlyingZ <= feetZ || obstacleForFlyingOtherDirZ <= feetZ)) { - if (obstacleForFlyingOtherDirZ > feetZ && obstacleForFlyingZ < 499.0f) - flyDir = 2; - } else { +#ifdef FIX_BUGS + if (obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ < 501.0f) flyDir = 1; - } + else if (obstacleForFlyingOtherDirZ > feetZ && obstacleForFlyingZ < 500.0f) + flyDir = 2; +#else + if ((obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ < 500.0f) || (obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ > feetZ)) + flyDir = 1; + else if (obstacleForFlyingOtherDirZ > feetZ && obstacleForFlyingZ < 499.0f) + flyDir = 2; +#endif if (flyDir != 0 && !bHeadStuckInCollision) { SetPosition((flyDir == 2 ? obstacleForFlyingOtherDir.point : obstacleForFlying.point)); @@ -2358,6 +2363,10 @@ CPed::ProcessControl(void) forceDir.z = 4.0f; ApplyMoveForce(forceDir); + // What was that for?? It pushes player inside of collision sometimes and kills him. +#ifdef FIX_BUGS + if (!IsPlayer()) +#endif GetMatrix().GetPosition() += 0.25f * offsetToCheck; m_fRotationCur = CGeneral::GetRadianAngleBetweenPoints(offsetToCheck.x, offsetToCheck.y, 0.0f, 0.0f); From 84ede57205119f6e3ebeef55dd1ebd62933887fe Mon Sep 17 00:00:00 2001 From: withmorten Date: Wed, 10 Feb 2021 18:48:43 +0100 Subject: [PATCH 062/113] startproject now depends on librw --- premake5.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/premake5.lua b/premake5.lua index f49e024c..b0a432bb 100644 --- a/premake5.lua +++ b/premake5.lua @@ -236,6 +236,10 @@ project "reVC" targetname "reVC" targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}" + if(_OPTIONS["with-librw"]) then + dependson "librw" + end + files { addSrcFiles("src") } files { addSrcFiles("src/animation") } files { addSrcFiles("src/audio") } From 7c485560c555723aac12027723ae046b4da44561 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 04:28:21 +0200 Subject: [PATCH 063/113] Translated string fix --- gamefiles/TEXT/spanish.gxt | Bin 454854 -> 454838 bytes utils/gxt/spanish.txt | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index 7ef6c0124b2336ea63b96e7ca56699b1aca1b780..454e773465ffa298b8f261a0260ae3486341ab49 100644 GIT binary patch delta 159 zcmX^1P3ff{*)r-(F8nUNUF101CQSh16f+b6 delta 178 zcmdn?Q2N+I=?xvsh9)Q37(yH)Je@;B7?#|Eu)`e<86uv-*hUOBFJWwBhLYx;% Date: Thu, 11 Feb 2021 04:36:00 +0200 Subject: [PATCH 064/113] Fix borders --- src/core/MenuScreensCustom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index c4a415c2..7d6f5d13 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -695,7 +695,7 @@ CMenuScreenCustom aScreens[] = { { "", 0, nil, nil, }, #ifdef GAMEPAD_MENU - { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true}), nil, + { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true, true}), nil, MENUACTION_CTRLCONFIG, "FEC_CCF", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 40, 76, MENUALIGN_LEFT, MENUACTION_CTRLDISPLAY, "FEC_CDP", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, INVERT_PAD_SELECTOR From 4f27a28762d3700946c064a315cd9ed0f104f321 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 05:03:41 +0200 Subject: [PATCH 065/113] More fixes --- gamefiles/TEXT/american.gxt | Bin 423838 -> 423830 bytes gamefiles/TEXT/french.gxt | Bin 468076 -> 468068 bytes gamefiles/TEXT/german.gxt | Bin 459742 -> 459734 bytes gamefiles/TEXT/italian.gxt | Bin 457046 -> 457038 bytes gamefiles/TEXT/spanish.gxt | Bin 454838 -> 454830 bytes src/core/ControllerConfig.cpp | 4 ++-- src/core/Frontend.cpp | 8 ++++---- utils/gxt/american.txt | 8 ++++---- utils/gxt/french.txt | 8 ++++---- utils/gxt/german.txt | 8 ++++---- utils/gxt/italian.txt | 8 ++++---- utils/gxt/spanish.txt | 8 ++++---- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index f4afab9eb0f61be5dc3a9315887d4bc531836844..1039deb887ddb84d2070b215cee239b9d7f859c5 100644 GIT binary patch delta 12714 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 K^VP6jXa@k!H?|Z2 delta 5790 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 aY&A^nY&Fd7Y&9(HY&ERg*=pD>v;zR@M!i`8 diff --git a/gamefiles/TEXT/italian.gxt b/gamefiles/TEXT/italian.gxt index 144356ec74442fcee446431ff7edf398cc9e3903..a67d957dcc8070b430b06c07195eb125e49fa783 100644 GIT binary patch delta 6760 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 Zs%C1Bs%CDFs%B}As%G6DRn7LN763>lq9*_V delta 6785 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 delta 7045 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 diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index d95abd24..2c79b6aa 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -2532,7 +2532,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act O, /* PED_SPRINT */ \ R3, /* PED_LOOKBEHIND */ \ L3, /* PED_DUCK */ \ - L1, /* PED_ANSWER_PHONE */ \ + T, /* PED_ANSWER_PHONE */ \ VFB(O) /* VEHICLE_FIREWEAPON */ \ X, /* VEHICLE_ACCELERATE */ \ Q, /* VEHICLE_BRAKE */ \ @@ -2579,7 +2579,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act X, /* PED_SPRINT */ \ R3, /* PED_LOOKBEHIND */ \ L3, /* PED_DUCK */ \ - L1, /* PED_ANSWER_PHONE */ \ + O, /* PED_ANSWER_PHONE */ \ VFB(R1) /* VEHICLE_FIREWEAPON */ \ RSU, /* VEHICLE_ACCELERATE */ \ RSD, /* VEHICLE_BRAKE */ \ diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 31580e0e..97525388 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -6175,13 +6175,13 @@ CMenuManager::PrintController(void) CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); CFont::SetJustifyOn(); CFont::SetWrapx(SCREEN_WIDTH); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_ATT")); CFont::SetRightJustifyOn(); CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); CFont::SetJustifyOn(); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index 9bc1c96d..99da103b 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -4456,11 +4456,11 @@ Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle Paramedic missions on o [GUN_H1] ~w~Press the~h~ ~k~~PED_SPRINT~ ~w~button to buy. Press the~h~ ~k~~VEHICLE_ENTER_EXIT~ ~w~button to exit. -[PU_CF3] -Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to replace current weapon in this slot. +[PU_CF3] { reVC update } +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to replace current weapon in this slot. -[PU_CF4] -Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to replace current weapon in this slot. +[PU_CF4] { reVC update } +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to replace current weapon in this slot. [HELP9_B] Press the~h~ ~k~~PED_FIREWEAPON~ button ~w~to ~h~fire~w~ the sniper rifle. diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index a1bd7baa..4eea0ef4 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -6214,11 +6214,11 @@ Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les miss [GUN_H1] ~w~Appuie sur la~h~ ~k~~PED_SPRINT~~w~ pour acheter. ~w~Appuie sur la~h~ ~k~~VEHICLE_ENTER_EXIT~~w~ pour quitter. -[PU_CF3] -Appuie sur la ~h~~k~~VEHICLE_ENTER_EXIT~~w~ pour remplacer l'arme actuelle dans cet emplacement. +[PU_CF3] { reVC update } +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour remplacer l'arme actuelle dans cet emplacement. -[PU_CF4] -Appuie sur la ~h~~k~~VEHICLE_ENTER_EXIT~~w~ pour remplacer l'arme actuelle dans cet emplacement. +[PU_CF4] { reVC update } +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour remplacer l'arme actuelle dans cet emplacement. [HELP9_B] Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour ~h~tirer~w~ avec le fusil à lunette. diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index 449e4993..589ba084 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -6175,11 +6175,11 @@ Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Krankenwagen-Missionen an- oder ab [GUN_H1] ~w~Drück die~h~ ~k~~PED_SPRINT~~w~, um zu kaufen. ~w~Drück die~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, um zu gehen. -[PU_CF3] -Drück die ~h~~k~~VEHICLE_ENTER_EXIT~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. +[PU_CF3] { reVC update } +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. -[PU_CF4] -Drück die ~h~~k~~VEHICLE_ENTER_EXIT~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. +[PU_CF4] { reVC update } +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. [HELP9_B] Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um das Prãzisionsgewehr ~h~abzufeuern~w~. diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index 5d8f65f4..e1edd771 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -6007,11 +6007,11 @@ Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni In [GUN_H1] ~w~Premi il ~h~~k~~PED_SPRINT~~w~ per comprare. ~w~Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per uscire. -[PU_CF3] -Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per sostituire l'arma attuale con quella presente in questo slot. +[PU_CF3] { reVC update } +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per sostituire l'arma attuale con quella presente in questo slot. -[PU_CF4] -Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per sostituire l'arma attuale con quella presente in questo slot. +[PU_CF4] { reVC update } +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per sostituire l'arma attuale con quella presente in questo slot. [HELP9_B] Premi il ~h~~k~~PED_FIREWEAPON~~w~ per sparare con il fucile di precisione. diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index 93524500..6163a1fe 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -5834,11 +5834,11 @@ Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones de ATS [GUN_H1] ~w~Pulsa ~h~~k~~PED_SPRINT~~w~ para comprar. ~w~Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para salir. -[PU_CF3] -Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para reemplazar tu arma actual en esta ranura. +[PU_CF3] { reVC update } +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para reemplazar tu arma actual en esta ranura. -[PU_CF4] -Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para reemplazar tu arma actual en esta ranura. +[PU_CF4] { reVC update } +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para reemplazar tu arma actual en esta ranura. [HELP9_B] Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para ~h~disparar~w~ el rifle de francotirador. From 28f9160bca304daf390f9b4dd68cb96d135e4f51 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 12:13:03 +0200 Subject: [PATCH 066/113] Fix crash when falling from bike while shooting --- src/audio/AudioLogic.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index c7b26711..7469f579 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -2970,6 +2970,8 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams& params) int32 sampleIndex; int32 frequency; CPed *pPed = params.m_pVehicle->pDriver; + if(!pPed) + break; if(!pPed->HasWeaponSlot(WEAPONSLOT_SUBMACHINEGUN)) { sampleIndex = SFX_UZI_LEFT; frequency = SampleManager.GetSampleBaseFrequency(sampleIndex); From 7c74c017418ee91d6fb580d9f32747810af4bc98 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Thu, 11 Feb 2021 13:35:56 +0300 Subject: [PATCH 067/113] fixed attractors --- src/peds/PedAttractor.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/peds/PedAttractor.cpp b/src/peds/PedAttractor.cpp index 11fb5b31..91139def 100644 --- a/src/peds/PedAttractor.cpp +++ b/src/peds/PedAttractor.cpp @@ -662,12 +662,12 @@ CPedAttractor* CPedAttractorManager::RegisterPed(CPed* pPed, C2dEffect* pEffect, } PUSH_MEMID(MEMID_PED_ATTR); switch (pEffect->pedattr.type) { - case ATTRACTOR_ATM: vecAttractors.push_back(new CPedAtmAttractor(pEffect, matrix, gcMaxSizeOfAtmQueue, 1.0f, 30000.0f, 3000.0f, 0.2f, 0.15f, 0.1f, 0.1f)); break; - case ATTRACTOR_SEAT: vecAttractors.push_back(new CPedSeatAttractor(pEffect, matrix, gcMaxSizeOfSeatQueue, 1.0f, 30000.0f, 3000.0f, 0.125f, 0.1f, 0.1f, 0.1f)); break; - case ATTRACTOR_STOP: vecAttractors.push_back(new CPedStopAttractor(pEffect, matrix, gcMaxSizeOfStopQueue, 1.0f, 30000.0f, 3000.0f, 0.2f, 0.1f, 0.1f, 0.1f)); break; - case ATTRACTOR_PIZZA: vecAttractors.push_back(new CPedPizzaAttractor(pEffect, matrix, gcMaxSizeOfPizzaQueue, 1.0f, 30000.0f, 3000.0f, 0.2f, 0.1f, 0.1f, 0.1f)); break; - case ATTRACTOR_SHELTER: vecAttractors.push_back(new CPedShelterAttractor(pEffect, matrix, gcMaxSizeOfShelterQueue, 1.0f, 30000.0f, 3000.0f, 0.5f, 6.28f, 0.1f, 0.1f)); break; - case ATTRACTOR_ICECREAM: vecAttractors.push_back(new CPedIceCreamAttractor(pEffect, matrix, gcMaxSizeOfIceCreamQueue, 1.0f, 30000.0f, 3000.0f, 0.2f, 0.3f, 0.1f, 0.1f)); break; + case ATTRACTOR_ATM: pRegisteredAttractor = new CPedAtmAttractor(pEffect, matrix, gcMaxSizeOfAtmQueue, 1.0f, 30000.0f, 3000.0f, 0.2f, 0.15f, 0.1f, 0.1f); vecAttractors.push_back(pRegisteredAttractor); break; + case ATTRACTOR_SEAT: pRegisteredAttractor = new CPedSeatAttractor(pEffect, matrix, gcMaxSizeOfSeatQueue, 1.0f, 30000.0f, 3000.0f, 0.125f, 0.1f, 0.1f, 0.1f); vecAttractors.push_back(pRegisteredAttractor); break; + case ATTRACTOR_STOP: pRegisteredAttractor = new CPedStopAttractor(pEffect, matrix, gcMaxSizeOfStopQueue, 1.0f, 30000.0f, 3000.0f, 0.2f, 0.1f, 0.1f, 0.1f); vecAttractors.push_back(pRegisteredAttractor); break; + case ATTRACTOR_PIZZA: pRegisteredAttractor = new CPedPizzaAttractor(pEffect, matrix, gcMaxSizeOfPizzaQueue, 1.0f, 30000.0f, 3000.0f, 0.2f, 0.1f, 0.1f, 0.1f); vecAttractors.push_back(pRegisteredAttractor); break; + case ATTRACTOR_SHELTER: pRegisteredAttractor = new CPedShelterAttractor(pEffect, matrix, gcMaxSizeOfShelterQueue, 1.0f, 30000.0f, 3000.0f, 0.5f, 6.28f, 0.1f, 0.1f); vecAttractors.push_back(pRegisteredAttractor); break; + case ATTRACTOR_ICECREAM: pRegisteredAttractor = new CPedIceCreamAttractor(pEffect, matrix, gcMaxSizeOfIceCreamQueue, 1.0f, 30000.0f, 3000.0f, 0.2f, 0.3f, 0.1f, 0.1f); vecAttractors.push_back(pRegisteredAttractor); break; } POP_MEMID(); if (pRegisteredAttractor) From 579ad052ed090627cc8b73998647f8b35c015ef0 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 13:30:04 +0200 Subject: [PATCH 068/113] Fix black screen during credits --- src/render/Credits.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/render/Credits.cpp b/src/render/Credits.cpp index 883ad2f2..81e76625 100644 --- a/src/render/Credits.cpp +++ b/src/render/Credits.cpp @@ -798,6 +798,9 @@ CCredits::Render(void) PrintCreditSpace(1.5f, lineoffset); PrintCreditSpace(1.5f, lineoffset); CFont::DrawFonts(); +#ifdef CUTSCENE_BORDERS_SWITCH + if (CMenuManager::m_PrefsCutsceneBorders) +#endif if(TheCamera.m_WideScreenOn) TheCamera.DrawBordersForWideScreen(); From e4320c02cf695afdd48c6fa54f0d82273306cf53 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 17:16:01 +0200 Subject: [PATCH 069/113] Enable BIND_VEHICLE_FIREWEAPON --- src/core/ControllerConfig.cpp | 18 ++++++++++++++++++ src/core/Frontend.cpp | 4 ++++ src/core/config.h | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index 2c79b6aa..72d31137 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -131,6 +131,9 @@ void CControllerConfigManager::LoadSettings(int32 file) { bool bValid = true; int nVersion = 0; +#ifdef BIND_VEHICLE_FIREWEAPON + bool skipVehicleFireWeapon = false; +#endif if (file) { @@ -148,11 +151,26 @@ void CControllerConfigManager::LoadSettings(int32 file) if (bValid && nVersion >= 3) { ControlsManager.MakeControllerActionsBlank(); +#ifdef BIND_VEHICLE_FIREWEAPON + skipVehicleFireWeapon = nVersion < 4; + // Set the default settings of VEHICLE_FIREWEAPON + if (skipVehicleFireWeapon) { + SetControllerKeyAssociatedWithAction(VEHICLE_FIREWEAPON, rsPADINS, KEYBOARD); + SetControllerKeyAssociatedWithAction(VEHICLE_FIREWEAPON, rsLCTRL, OPTIONAL_EXTRA); + if (m_bMouseAssociated) + SetMouseButtonAssociatedWithAction(VEHICLE_FIREWEAPON, 1); + } +#endif for (int32 i = 0; i < MAX_CONTROLLERTYPES; i++) { for (int32 j = 0; j < MAX_CONTROLLERACTIONS; j++) { +#ifdef BIND_VEHICLE_FIREWEAPON + // Skip file read + if (skipVehicleFireWeapon && j == VEHICLE_FIREWEAPON) + continue; +#endif CFileMgr::Read(file, (char *)&ControlsManager.m_aSettings[j][i], sizeof(tControllerConfigBind)); } } diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 97525388..4c847596 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -3135,7 +3135,11 @@ CMenuManager::SaveSettings() { #ifndef LOAD_INI_SETTINGS static char RubbishString[48] = "stuffmorestuffevenmorestuff etc"; +#ifdef BIND_VEHICLE_FIREWEAPON + static int SomeVersion = 4; +#else static int SomeVersion = 3; +#endif CFileMgr::SetDirMyDocuments(); diff --git a/src/core/config.h b/src/core/config.h index 152ba336..4d2ad3bf 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -307,7 +307,7 @@ enum Config { #define BETTER_ALLCARSAREDODO_CHEAT #define WALLCLIMB_CHEAT #define REGISTER_START_BUTTON -//#define BIND_VEHICLE_FIREWEAPON // Adds ability to rebind fire key for 'in vehicle' controls +#define BIND_VEHICLE_FIREWEAPON // Adds ability to rebind fire key for 'in vehicle' controls #define BUTTON_ICONS // use textures to show controller buttons // Hud, frontend and radar From 998d88763d7d711fc7d228e4bf3fdbb7dbb51eac Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 18:03:47 +0200 Subject: [PATCH 070/113] Fix RC cars detonation button --- src/vehicles/Automobile.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index cdc500e7..06dc1b54 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -371,7 +371,11 @@ CAutomobile::ProcessControl(void) bool playerRemote = false; switch(GetStatus()){ case STATUS_PLAYER_REMOTE: +#ifdef FIX_BUGS + if(CPad::GetPad(0)->CarGunJustDown() && !bDisableRemoteDetonation){ +#else if(CPad::GetPad(0)->WeaponJustDown() && !bDisableRemoteDetonation){ +#endif BlowUpCar(FindPlayerPed()); CRemote::TakeRemoteControlledCarFromPlayer(); } From 438277408b985c7d231f3372d250af8af2bd0f50 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 18:36:40 +0200 Subject: [PATCH 071/113] Use VEHICLE_FIREWEAPON in GXTs --- gamefiles/TEXT/american.gxt | Bin 423830 -> 424006 bytes gamefiles/TEXT/french.gxt | Bin 468068 -> 468284 bytes gamefiles/TEXT/german.gxt | Bin 459734 -> 460058 bytes gamefiles/TEXT/italian.gxt | Bin 457038 -> 457234 bytes gamefiles/TEXT/spanish.gxt | Bin 454830 -> 455006 bytes utils/gxt/american.txt | 88 ++++++++++++++++++------------------ utils/gxt/french.txt | 88 ++++++++++++++++++------------------ utils/gxt/german.txt | 88 ++++++++++++++++++------------------ utils/gxt/italian.txt | 88 ++++++++++++++++++------------------ utils/gxt/spanish.txt | 88 ++++++++++++++++++------------------ 10 files changed, 220 insertions(+), 220 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index 1039deb887ddb84d2070b215cee239b9d7f859c5..919cd1394299cc930fde7f98ef1d4af9cce7946a 100644 GIT binary patch delta 22483 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%0AOd5%F}#7Z-5F|F85lhL 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⁡2v$nIHWf9|q1Uuh#mL@DL zukAuNShg83nQ%<+>1C6cUiE@eV*4)+Rv&h-;`TZL*6noyY*NweF3b!JAq@G`9j7pf zZ{L>9HjfEp2RODD$gwdoFa$Y+TCNrhVQ{u3Lx_uG$TFts2}NvD(+_AdS#0mgXES4j zYc$)gP{^i}X}Ca=0aU0MgW4zxQZTkL!vZ+lgh4?XCT_~`W_s-{wqV|Wf>0qNBL=zY zcW<#NGfGTnyv-&qxk(%*W5F;-0LHdtSTo)5Hk-0njxbcn*qFgi1jaUD&=ZBRO&R3G zU~DsnCosE>%^9A_z{D*WKFCg=cbiR2s!I+kW@5mgzz$`bGBA7+n||&#+crk4?X7p% g$^}4qNo9K0bQZqpYu>O0Oy3a9D7SshTeb=207Gb6n*aa+ diff --git a/gamefiles/TEXT/german.gxt b/gamefiles/TEXT/german.gxt index 27ee143cf4016a10398b752d6d29de7ab4155aed..700ea772b99a32a9fa8f364fbf4a7a69e644d1d2 100644 GIT binary patch delta 21011 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 G?@R#-58Pq^ diff --git a/gamefiles/TEXT/italian.gxt b/gamefiles/TEXT/italian.gxt index a67d957dcc8070b430b06c07195eb125e49fa783..4eaabb2ee56ca38de8fc31c0034f868850d13711 100644 GIT binary patch delta 22389 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 delta 22264 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 diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index 1401b505237fbc91de932c7bc8d51e93adfa65c9..5af714c13ec637c68affc513b71de99a91a360b6 100644 GIT binary patch delta 22289 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 Date: Thu, 11 Feb 2021 21:36:55 +0100 Subject: [PATCH 072/113] use better quality button textures, add generic.txd --- gamefiles/models/generic.txd | Bin 0 -> 1168376 bytes gamefiles/models/ps3btns.txd | Bin 126760 -> 528424 bytes gamefiles/models/x360btns.txd | Bin 126760 -> 528424 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 gamefiles/models/generic.txd diff --git a/gamefiles/models/generic.txd b/gamefiles/models/generic.txd new file mode 100644 index 0000000000000000000000000000000000000000..885cba1512a5ee3770579cb6ed78392e91540a8e GIT binary patch literal 1168376 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 z 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
    0deEAAgPVjPabA!eOxPDdr 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%0D3Wiv%1R7#K1HlmrABguv-JAU-r)eSvC& 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⁡t@$;FoZj6*_*ZA{LCx@(75g;wZTLAA3Cz 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

    VXw*Z$Y9k1yR@vUJzGO{+lWeK!<13$mwBm4yW~ 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 literal 0 HcmV?d00001 diff --git a/gamefiles/models/ps3btns.txd b/gamefiles/models/ps3btns.txd index 290af8d77229e16ed6fb3ba05410251458ba98a6..6f485f1434e8b318af9373ac8f93fcb3a524053b 100644 GIT binary patch literal 528424 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%0AJqQ= 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 Ke*lzvVQc`T%*zn~ literal 126760 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 R?nBluDk{o=JpO>p1^_85lM4U< diff --git a/gamefiles/models/x360btns.txd b/gamefiles/models/x360btns.txd index 8d8460af656449496660ff297adc49354da1675b..3c6ac314513a2f6e09e7046cf9ae3d9654effdc0 100644 GIT binary patch literal 528424 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 z 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

    kk3{P_XgUiCuhuV70HATba|GaEUqL2KZC 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 z≫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

    78)*zF+qLb2Ch&|Z2M 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

    f{z42Bmkp8tRO;`x6Njeh>X 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 HKxP8~8ZCRd literal 126760 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≥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 From 031195f11d6ed57c6563ce83536154af3f936b56 Mon Sep 17 00:00:00 2001 From: withmorten Date: Thu, 11 Feb 2021 21:51:22 +0100 Subject: [PATCH 073/113] better controller menu txds --- gamefiles/models/frontend_ds3.txd | Bin 328360 -> 590632 bytes gamefiles/models/frontend_ds4.txd | Bin 328360 -> 590632 bytes gamefiles/models/frontend_x360.txd | Bin 328360 -> 590632 bytes gamefiles/models/frontend_xone.txd | Bin 328360 -> 590632 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/gamefiles/models/frontend_ds3.txd b/gamefiles/models/frontend_ds3.txd index dfd11e263fb8d6935671bf5b3c5f94d66bab16b5..1e5da6e1438f966125b32a94c41e1cfeb7295f06 100644 GIT binary patch literal 590632 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�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 literal 328360 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%0Aqdd%O8> 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%0Aqd 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 diff --git a/gamefiles/models/frontend_x360.txd b/gamefiles/models/frontend_x360.txd index f09ce09056a1ad1c33b170ad794d31ea0ed4cb92..9ba773f29d4945aea2602dd61c90885b3afd9fef 100644 GIT binary patch literal 590632 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%0AZ)gz#JSWw#z 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 TXb6mu5P+T3{Qo~A3o;u3z0&c5 literal 328360 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 a0~L&h$7pyUhrl3953sGG|Nk=!AhQ8~DO;TY diff --git a/gamefiles/models/frontend_xone.txd b/gamefiles/models/frontend_xone.txd index a9c297aedb6d161e41ce14c7394b4a269d5864da..848580e3f1a5d18afe78cd65d64e074870f63732 100644 GIT binary patch literal 590632 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 Yfl)9T0;3@?LP7v`T>bz5j4a4(0D+~sGXMYp literal 328360 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 From 879838c9f20d9f166353d4dd5ea486dda6f91921 Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 12 Feb 2021 00:29:09 +0100 Subject: [PATCH 074/113] enable screenshots with F12 --- src/core/main.cpp | 13 +++++++++++++ src/fakerw/fake.cpp | 37 +++++++++++++++++++++++++++++++++++++ src/skel/glfw/glfw.cpp | 1 + src/skel/win/win.cpp | 1 + vendor/librw | 2 +- 5 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/core/main.cpp b/src/core/main.cpp index a08a9535..bb94ca5d 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -1,8 +1,10 @@ #include "common.h" +#include #include "rpmatfx.h" #include "rphanim.h" #include "rpskin.h" #include "rtbmp.h" +#include "rtpng.h" #ifdef ANISOTROPIC_FILTERING #include "rpanisot.h" #endif @@ -331,7 +333,11 @@ RwGrabScreen(RwCamera *camera, RwChar *filename) strcpy(temp, CFileMgr::GetRootDirName()); strcat(temp, filename); +#ifdef THIS_IS_STUPID if (RtBMPImageWrite(pImage, &temp[0]) == nil) +#else + if (RtPNGImageWrite(pImage, &temp[0]) == nil) +#endif result = false; RwImageDestroy(pImage); return result; @@ -350,6 +356,7 @@ DoRWStuffEndOfFrame(void) RsCameraShowRaster(Scene.camera); #ifndef MASTER char s[48]; +#ifdef THIS_IS_STUPID if (CPad::GetPad(1)->GetLeftShockJustDown()) { // try using both controllers for this thing... crazy bastards if (CPad::GetPad(0)->GetRightStickY() > 0) { @@ -361,6 +368,12 @@ DoRWStuffEndOfFrame(void) RwGrabScreen(Scene.camera, s); } } +#else + if (CPad::GetPad(1)->GetLeftShockJustDown() || CPad::GetPad(0)->GetFJustDown(11)) { + sprintf(s, "screen_%11lld.png", time(nil)); + RwGrabScreen(Scene.camera, s); + } +#endif #endif // !MASTER } diff --git a/src/fakerw/fake.cpp b/src/fakerw/fake.cpp index 18a27ec1..1faf6ee6 100644 --- a/src/fakerw/fake.cpp +++ b/src/fakerw/fake.cpp @@ -947,6 +947,43 @@ RtBMPImageRead(const RwChar *imageName) #endif } + +RwImage * +RtPNGImageWrite(RwImage *image, const RwChar *imageName) +{ +#ifndef _WIN32 + char *r = casepath(imageName); + if (r) { + rw::writePNG(image, r); + free(r); + } else { + rw::writePNG(image, imageName); + } + +#else + rw::writePNG(image, imageName); +#endif + return image; +} +RwImage * +RtPNGImageRead(const RwChar *imageName) +{ +#ifndef _WIN32 + RwImage *image; + char *r = casepath(imageName); + if (r) { + image = rw::readPNG(r); + free(r); + } else { + image = rw::readPNG(imageName); + } + return image; + +#else + return rw::readPNG(imageName); +#endif +} + #include "rtquat.h" RtQuat *RtQuatRotate(RtQuat * quat, const RwV3d * axis, RwReal angle, RwOpCombineType combineOp) { return (RtQuat*)((rw::Quat*)quat)->rotate(axis, angle/180.0f*3.14159f, (CombineOp)combineOp); } diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index 8fe1d93f..db9d101a 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -207,6 +207,7 @@ psGrabScreen(RwCamera *pCamera) } #else rw::Image *image = RwCameraGetRaster(pCamera)->toImage(); + image->removeMask(); if(image) return image; #endif diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp index 6ed02011..89c901b2 100644 --- a/src/skel/win/win.cpp +++ b/src/skel/win/win.cpp @@ -262,6 +262,7 @@ psGrabScreen(RwCamera *pCamera) } #else rw::Image *image = RwCameraGetRaster(pCamera)->toImage(); + image->removeMask(); if(image) return image; #endif diff --git a/vendor/librw b/vendor/librw index 5c953008..4c77fb57 160000 --- a/vendor/librw +++ b/vendor/librw @@ -1 +1 @@ -Subproject commit 5c95300890559c85a2764bc200361f904cd4f9f4 +Subproject commit 4c77fb57546e89da1e6f3bad3c582848de9f5c93 From c5db1e697b88794973148121d6d89de5f5d5896c Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 12 Feb 2021 00:57:39 +0100 Subject: [PATCH 075/113] improved readme --- README.md | 95 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 75 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 84713f99..e2acaa8f 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,85 @@ -# reVC [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FGTAmodding%2Fre3%2Fbadge%3Fref%3Dmiami&style=flat)](https://actions-badge.atrox.dev/GTAmodding/re3/goto?ref=miami) ## Intro -The aim of this project is to reverse GTA Vice City for PC. +In this repository you'll find the fully reversed source code for GTA III ([master](tree/master) branch) and GTA VC ([miami](tree/miami) branch). + +It has been tested and works on Windows, Linux and FreeBSD, on x86, amd64, arm and arm64.\ +Rendering is handled either by original RenderWare (D3D8) +or the reimplementation [librw](https://github.com/aap/librw) (D3D9, OpenGL 2.1 or above, OpenGL ES 2.0 or above).\ +Audio is done with MSS (using dlls from original GTA) or OpenAL. + +We cannot build for PS2 or Xbox yet. If you're interested in doing so, get in touch with us. ## How can I try it? - reVC requires game assets to work, so you **must** own [a copy of GTA Vice City](https://store.steampowered.com/app/12110/Grand_Theft_Auto_Vice_City/). -- Build reVC or download it from one of the above links (Debug or Release). -- (Optional) If you want to use optional features, copy the files in /gamefiles folder to your game root folder. -- Move reVC.exe to GTA VC directory and run it. +- Build reVC or download the latest nightly build: + - [Windows D3D9 MSS 32bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_x86/miami/reVC_Release_win-x86-librw_d3d9-mss.zip) + - [Windows D3D9 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_d3d9-oal.zip) + - [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_gl3_glfw-oal.zip) + - [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/ubuntu-latest-gl3.zip) + - [MacOS 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/macos-latest-gl3.zip) +- Copy the files from the `gamefiles` directory to your game root directory. (This is not strictly necessary but very much recommended) +- Move reVC executable to GTA VC directory and run it. -## Latest standalone executables to download +## Screenshots -(Put content of selected archive into gamedir) +![screen_ 1613086852](https://user-images.githubusercontent.com/1521437/107714115-fa18f580-6ccc-11eb-9de5-eb4cd04865d3.png) +![screen_ 1613086989](https://user-images.githubusercontent.com/1521437/107714103-f38a7e00-6ccc-11eb-88a3-c8c2033c51d6.png) +![screen_ 1613087193](https://user-images.githubusercontent.com/1521437/107714106-f4bbab00-6ccc-11eb-96a9-13821d9b9684.png) +![screen_ 1613087332](https://user-images.githubusercontent.com/1521437/107714111-f84f3200-6ccc-11eb-902e-d757481d579a.png) -- [Windows D3D9 MSS 32bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_x86/miami/reVC_Release_win-x86-librw_d3d9-mss.zip) -- [Windows D3D9 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_d3d9-oal.zip) -- [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_gl3_glfw-oal.zip) -- [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/ubuntu-latest-gl3.zip) -- [MacOS 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/macos-latest-gl3.zip) +## Improvements + +We have implemented a number of changes and improvements to the original game. +They can be configured in `core/config.h`. +Some of them can be toggled at runtime, some cannot. + +* Fixed a lot of smaller and bigger bugs +* User files (saves and settings) stored in GTA root directory +* Settings stored in reVC.ini file instead of gta_vc.set +* Debug menu to do and change various things (Ctrl-M to open) +* Debug camera (Ctrl-B to toggle) +* Rotatable camera +* Xinput controller support (Windows) +* No loading screens between islands ("map memory usage" in menu) +* Rendering + * Widescreen support (properly scaled HUD, Menu and FOV) + * PS2 MatFX (vehicle reflections) + * PS2 alpha test (better rendering of transparency) + * Xbox vehicle rendering + * Xbox world lightmap rendering (needs Xbox map) + * Xbox ped rim light + * Xbox screen rain droplets + * More customizable colourfilter +* Menu + * More options + * Controller configuration menu + * ... +* Can load DFFs and TXDs from other platforms, possibly with a performance penalty +* ... + +## To-Do + +The following things would be nice to have/do: + +* Fix physics for high FPS +* [PS2 port](https://github.com/GTAmodding/re3/wiki/PS2-port) +* Xbox port (not quite as important) +* reverse remaining unused/debug functions +* compare Codewarrior build with original binary for more accurate code (very tedious) + +## Modding + +Asset modifications (models, texture, handling, script, ...) should work the same way as with original GTA for the most part. + +Mods that make changes to the code (dll/asi, CLEO, limit adjusters) will *not* work. +Some things these mods do are already implemented in re3 (much of SkyGFX, GInput, SilentPatch, Widescreen fix), +others can easily be achieved (increasing limis, see `config.h`), +others will simply have to be rewritten and integrated into the code directly. +Sorry for the inconvenience. ## Building from Source @@ -75,15 +133,12 @@ Assuming you have Visual Studio: > :information_source: **Did you notice librw?** reVC uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of reVC, but you also can use LIBRW enviorenment variable to specify path to your own librw. ## Contributing -Please read the [Coding Style](https://github.com/GTAmodding/re3/blob/miami/CODING_STYLE.md) Document +We have a [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) document that isn't followed or enforced very well. -### Unreversed / incomplete classes +Do not use features from C++11 or later. -PS2/Mobile stuff: - src/core/Pad.cpp - src/core/main.cpp - src/core/Frontend_PS2.cpp - src/core/FrontEndControls.cpp - src/save/MemoryCard.cpp +## License +We don't feel like we're in a position to give this code a license. +If we were, it would be MIT licensed. From c3ced5825d1b9d3e82ba33c5de68a59872d3fa47 Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 12 Feb 2021 00:58:16 +0100 Subject: [PATCH 076/113] improved readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e2acaa8f..74eb2fa7 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,10 @@ We cannot build for PS2 or Xbox yet. If you're interested in doing so, get in to ## Screenshots +![screen_ 1613087332](https://user-images.githubusercontent.com/1521437/107714111-f84f3200-6ccc-11eb-902e-d757481d579a.png) ![screen_ 1613086852](https://user-images.githubusercontent.com/1521437/107714115-fa18f580-6ccc-11eb-9de5-eb4cd04865d3.png) ![screen_ 1613086989](https://user-images.githubusercontent.com/1521437/107714103-f38a7e00-6ccc-11eb-88a3-c8c2033c51d6.png) ![screen_ 1613087193](https://user-images.githubusercontent.com/1521437/107714106-f4bbab00-6ccc-11eb-96a9-13821d9b9684.png) -![screen_ 1613087332](https://user-images.githubusercontent.com/1521437/107714111-f84f3200-6ccc-11eb-902e-d757481d579a.png) ## Improvements From 9e22eaf79834dc6a462790b78768f5cd0f522428 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Fri, 12 Feb 2021 08:06:34 +0200 Subject: [PATCH 077/113] Fix RW34 --- src/core/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/main.cpp b/src/core/main.cpp index bb94ca5d..bf0ce5fe 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -333,7 +333,7 @@ RwGrabScreen(RwCamera *camera, RwChar *filename) strcpy(temp, CFileMgr::GetRootDirName()); strcat(temp, filename); -#ifdef THIS_IS_STUPID +#ifndef LIBRW if (RtBMPImageWrite(pImage, &temp[0]) == nil) #else if (RtPNGImageWrite(pImage, &temp[0]) == nil) From c5042dcdf66ea1da380d5fa0964081688a217d50 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Fri, 12 Feb 2021 08:14:10 +0200 Subject: [PATCH 078/113] Add english strings to translations as stubs, also translation notice --- gamefiles/TEXT/american.gxt | Bin 424006 -> 423974 bytes gamefiles/TEXT/french.gxt | Bin 468284 -> 469972 bytes gamefiles/TEXT/german.gxt | Bin 460058 -> 461770 bytes gamefiles/TEXT/italian.gxt | Bin 457234 -> 458926 bytes gamefiles/TEXT/spanish.gxt | Bin 455006 -> 455258 bytes src/audio/MusicManager.cpp | 2 +- src/core/MenuScreensCustom.cpp | 4 +- utils/gxt/american.txt | 5 +- utils/gxt/french.txt | 144 ++++++++++++++++++++++++++++++++- utils/gxt/german.txt | 144 ++++++++++++++++++++++++++++++++- utils/gxt/italian.txt | 142 +++++++++++++++++++++++++++++++- utils/gxt/spanish.txt | 38 ++++++++- 12 files changed, 457 insertions(+), 22 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index 919cd1394299cc930fde7f98ef1d4af9cce7946a..077590fb0976acafbf2272ce47e92441fc32b50c 100644 GIT binary patch delta 1064 zcmX^1L2}s#$q6#`3AdRT9D{>B{R|lxQtm_9Mhpy79zog03=9)qK-ne?3|~G#*`^E( z8NZnroE-hUy$l%`8vaAsMhpx(T+9%0V+IBmSt#3tfgwf%#18TY*>%GO%&zzMGh$$P z;sfUR`x!GZ=tM)=CJYQANl>;a1H*@WW(FruZ&yPG1_q6C2-}E(fuW)f!Zv1LU^vpj z%;4l35f4(cWCAmTlfPq#Q)ncE$wX!bXU71rc*HaiI|wAqAh4_+%n5J|GGsWjhMB?H zKfu{Bh=Jk9IuJY5FT{|6;m1ZO+lYZ-&3x#t_%z-m{}OyJcC?Ag1i~dD6%lPyZX5X)jJw8RA@jsjz$bV<}kJ~ z!wV-E+k}B55ym!UI8eyK;Nj>AavK9f1B49<35y;G8x#^UQ&|{1{6k!Q7#J98=CCk$ zI=eatxf(L8Sqfo?hA=QRY-C}m_w)-1@@HURSh16Z!P^z=VTOh)EDYYB&fdWxAq*jR zSr~jA!y{dT3>h9ggt3hnX0WnC#f=#l)L?8Ah8f1J48ER@zMk=h3~th5*l~C`SechMYuJh5-K{P)IX4 z`K$~9LH^)S*|HwO2CLr-VT07O9ARY$a&&eLW?*30 zaE+BA$hqFb)yLD2VaFX1C&0(g)sP|LK8OucX2>A$h?OD8-`N|KpjJGAutA1?`3hl! z41MySl_A(Q$Q`6cM1c*=2B}HVg0Mkq<`}avgg8ccg47rUL)gxtAq+oslOddNM?(gd zJQ&-E;Z7lpZOl+n!p0Ed?Hc)|Wb+~BK8?vSIujU$How)`%_wy$k%__0)j8fJ*off~ zoNdhTD{=E7JvkOetIZFM{xdNqZGLE4&B0hRIo56llUu~*?{*h08Rs>htY|-3!MOco h1=HEY>4$DHiL~###nis<7IXW)TP)l6-D2&S3jmT}34j0q delta 1094 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 delta 1244 zcmca|U1rZInF%uWTlAS39D{>B{R|lxz8FKH~$FsLBz`&4m1Hv|9U|dVPg5#K6!X0%C{yg@8gu9LhFgV2Ds-VQ>z0as>Gx!Vt|kdFi-SUfLy(oh!#~8;hk=3Ng#;^ur?abb zkgFksf-;018p6PEN1K(Q-qSB6$e)3MLBN!i!P^z=VTKTIRt9fRXYb&U5QZNitPDPm z;gPOEh73z0VQeFY8}%@@F~f^RFt!Q9kBzJhzMhW0p7DkZ8xF8C`1&${LBe5H2LCWe zpCC_nhL&Tj3;`aVK86eo^$Y^%AsmnoTCTG)1b9Y8IWjOX{CLF55a1sK3TXzB4-hs; z%>`yQusFz@gt?hrOeeThFCLy)7hYcK-?Lre-A zLy&X5hpUgLA%j6Sh!f!B=W59CA`ip{DKlhvQ^>{;Dr{5H`rrj#da8WN6Do zHilr=Aa{_Oj-wDZNKM8C2pgnE;uaf2h+~8&NX?Z$5Vmt@2t$o7A3Ing+|iJMM+(L^ zVt678V;eJEP+(^W@pg?ADcgLAd6@?Hj;%}#Zmy2;ZoYn#({(0pX3^ciIQfR&ipf3t zbM#}Dfh3*dJ;TBn#1=x>UQYfDDq9&D++3aGy?g^0LKZ>A{UbNG8>BLA{$ccmY4Q)# z72GbnK&o8goq{|kpEolUf5F7S;O6QQ?-A<4pu-GfyG@Qamz>;UZZr9ec>;G2R8P2P z@aA-jlZ^T^mV%7;jdu(3Wr%{Zef(V*_CVR7B(dcn$S~h{KYxbFr>#`E_dxkUt|61< zty?#5u>Qd~d5i6h$usOGOg6Ev*u2AD#)j$2*5+%~?boUqw_mGf+O>6hg(;IvyN?-j SyN?-5yN?;`b{{jgj;{cnOE>ZW diff --git a/gamefiles/TEXT/german.gxt b/gamefiles/TEXT/german.gxt index 700ea772b99a32a9fa8f364fbf4a7a69e644d1d2..fe42078ce8645908234b8cc48d4157df3e9da07f 100644 GIT binary patch delta 2907 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 delta 1243 zcmZ42C^PAc^aPpu1#-*`j={m6eufMTN0gv!BL;>yDp0mD14D*3lx@Pmu*C$*Hf3P& zuxDm)a`f}|GGt)LaE7vt7#QyOLD|L(3`gRjY!e2CAK4&wkUz+-7kyxMy}zFk1H+SP zV2;0^F#`j`GAP@Gfq`colx@nuFlP@lgOjJXt04me!-T^Swh;pZ!;8}pHb^VWb!G-9 z--vjSnt=Pv3{L)zAx@!@3^EUx8Jryhz~VQafY?DGVTPKo^gO6%?`X*Iry0s|G-9Zj3}YKJ zgv^JrO&Ff+g|ST;R-9*H@No15xs4&>9)t}Fi9fF(Y*0vad|_em@DFkIVPIhJ`NP8C z>Fnwp;okl|-#sQ2^>3G!!PVBnBoW$<!ZOjnT1Y?^pBur#w@bz@`^^7-UxG|rV!Pl1o40;x^ zGWdr%`UH8pGaOmU$`Ih;>0`*iP|skp4#ENXV8K>ah5*l~C`Sec2AKn_3<3T@ppa&W zISXNf)W|%5utC0zcnx8jFfcI0FtRZO1o?wQB}53q2C1K-0AYjFpHXLH2y%3G4Q60q zP_bcS2y(9XaP{#tWN>f>aRPk&Tn!m`+(B%RGDC(7o@@+3{?6W@1jXP3VS@~9iG{F1 zhSp@TF$B8?xr5aFnFV2k)QBvDut93JtY>2gag6W;sabIm!gdY~VOXO37{Up6G-TNE z4#qZOIPnR_HfG5A%El1l?HZ|5w)qhAJ`L`kB}@!%u8#3;zJ8PIbtZ0>(cQo}`Geky z$xHO-O!hI55T7!ik-^Q?Io``RfMMN4kYeX}FaOBR^9@p&HVYVkVVW#pwt~B72}qSo zyi<_p7AtyH-Up!^`$kjduOt(#9+ z|6rVa#`ebK4R#YI``A}(zF;q7!?bKk^SkQych!vB-&Hg9EfEi5aAa^{@MQ33P+$mV g2w-q!@M8#JaBMeMWo|cDWob88W!-MB%2s|G08Gg^Qvd(} diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index 5af714c13ec637c68affc513b71de99a91a360b6..1f1631625627bfbb98353206f4db78d83ded46c7 100644 GIT binary patch delta 1315 zcmccjNcz?j=?OCRGNQ~3j={m6eufMTK9W$j5d%Yp43urmz`&slWt%WCywQQOO&J)b zSTHj8+k}B3A``?8@(0=Vp##jW_xCemU|^UC z=J@*=GcdF)fU->(7>+E5vP~Hn7Hnf?aPstaHDq95n6MAR25Id$24NdBFfiC$WM**k zjfe-S*>jVb!O7n-#3?kAA>tM@gR^4*SUlxEh#dqHW_a_y9?S`F3^HWc@r{|m*+0P9 zF^GZT&kqng)Gx%4fnmuXDBFmE!G(*3!8z2)5#$3AaVXn}fgwN*$~I{%GxJpCMfTp1W@fq3g zU4sl6YHVR_BZdP>Ft#znmu48-gki@dRt8^BM_DcmJQ(~LoEf|s6c|AM#wHF518m}; zi1TG|Wbk8fVen^AU~pk@Wl&&U@&GdV=!P~V8Eir53b0c!H>a}fq@}} y!IL2X$rywt1_nn4FNRQtV1^I|SB7A?MMx^zWks0VWkp!pWkp!G%Zji$-UR^n{~=ib delta 1053 zcmcchMEc$%=?OCR3L?x5j={m6eufMT0TNKQ5d%YxG?Z=3z`&yfWt%WCe9(rnO&J(w zm@_jtIr@2f88R?ju!gdY7#J$tp=@IY29X#j+k}B3CIiF{@(0=Vr5((!_xCemU|^X5 z=J@*=Gca__hq6r=7)~sMvP~HnmTYBaaPstaHDq95n6ekbHez64=s5~u8#6F4I9y<6 zaPp0a2dO!5gPFm}-!a4~G?F3aCNqPxV*pq@;~t0|1QKTW@U9-r32+QDWZ3hSnZemV zz}Yc~fq~%%h#l$|V#vU-;y09S#K7Re$->|q>f{LWfrJ>8ZN$J3q6%djGcfoVL)j(_ z3=wuL3~ru&jy|po3=Kgbc93gGkT(NQ5etL6tDkF7y`v$6NhOryXvA=(1I9LHP?!p1 zn=r&|g|ST;8jiCtcsP23+{Vyz4Z;S6#D>QZHYg-sykTMR@DFkIVPIf5@`Z)L)7jNI z$kmXc=O2U}8p6OZg`1V3-qSB6$e)3MK}3X=!P^z=VFnRBRt9fRXYb&U5QYWjtPDPm z;gPOEh71ihFt!oHkwh5VnBhkgjBUcOXCfsX;2-Ab z6Xfa6kg$xEA;81a$B==cp21^1gah({!VXr30MDo>N05UKvoZwu2Z2JG;m8FD8>GhI z34{&u<%IVTwh03RLklY#LqL!}I8;Q$A#9NP95o0Vq`pCyjUmX<*)^Dffq}z`jUmXn z-ow?$(~#kX2Z$5k<5ajRd4N6cvK@c{`P=Qnk8)Rrm0UJZG zYmhrgjm%^S8>EJ39)t~2^Jh65Lx^L9CrHhilMuFZXb6Li&TR-M+|iKX!&4aBh(Y8P zjBU)o^OlVv#M?D8W%EJiat-b)vzZv&Tpi=xeElYy>rC8yMP~!!<`sG(ESpalePP;s z!nA;6vWs0WQ;_54%XSMbIX}#1VyI(CXQ-Qg{sgOR^Q?;YSrv@iXH_t5nms*FkV&Rp VMwGc-MwF#pMwE5Cj3}GkT>#fm`yl`T diff --git a/src/audio/MusicManager.cpp b/src/audio/MusicManager.cpp index d229ef8d..4b32002b 100644 --- a/src/audio/MusicManager.cpp +++ b/src/audio/MusicManager.cpp @@ -1307,7 +1307,7 @@ cMusicManager::DisplayRadioStationName() case RADIO_OFF: { extern wchar WideErrorString[]; - string = TheText.Get("FEA_FMN"); + string = TheText.Get("FEA_NON"); if (string == WideErrorString) { pCurrentStation = nil; return; diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 7d6f5d13..a5dbd0d5 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -643,7 +643,7 @@ CMenuScreenCustom aScreens[] = { MENUACTION_LOADRADIO, "FEO_AUD", {nil, SAVESLOT_NONE, MENUPAGE_SOUND_SETTINGS}, 0, 0, MENUALIGN_CENTER, MENUACTION_CHANGEMENU, "FEO_DIS", {nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS}, 0, 0, MENUALIGN_CENTER, #ifdef GRAPHICS_MENU_OPTIONS - MENUACTION_CHANGEMENU, "FET_GRA", {nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS}, 0, 0, MENUALIGN_CENTER, + MENUACTION_CHANGEMENU, "FET_GFX", {nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS}, 0, 0, MENUALIGN_CENTER, #endif MENUACTION_CHANGEMENU, "FEO_LAN", {nil, SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS}, 0, 0, MENUALIGN_CENTER, MENUACTION_PLAYERSETUP, "FET_PS", {nil, SAVESLOT_NONE, MENUPAGE_SKIN_SELECT}, 0, 0, MENUALIGN_CENTER, @@ -759,7 +759,7 @@ CMenuScreenCustom aScreens[] = { #ifdef GRAPHICS_MENU_OPTIONS // MENUPAGE_GRAPHICS_SETTINGS - { "FET_GRA", MENUPAGE_OPTIONS, new CCustomScreenLayout({40, 78, 25, true, true}), GraphicsGoBack, + { "FET_GFX", MENUPAGE_OPTIONS, new CCustomScreenLayout({40, 78, 25, true, true}), GraphicsGoBack, MENUACTION_SCREENRES, "FED_RES", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS }, 0, 0, MENUALIGN_LEFT, MENUACTION_WIDESCREEN, "FED_WIS", { nil, SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS }, 0, 0, MENUALIGN_LEFT, diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index 2498664e..b39d9a1b 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -14289,7 +14289,7 @@ POLISH RUSSIAN { new display menus } -[FET_GRA] +[FET_GFX] GRAPHICS SETUP [FED_MIP] @@ -14399,9 +14399,6 @@ INVERT PAD VERTICALLY [FEM_NON] NONE -[FEA_FMN] -RADIO OFF - [FEC_DS2] DUALSHOCK 2 diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index 7b733b44..f88a9158 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -1,4 +1,11 @@ -[RAMPAGE] +{ + New strings are at the bottom of file. + Do not change the order of strings. + You can fix the typos of existing translation but please refrain from + unnecessary edits like rephasing because you think it suits better for your taste. +} + +[RAMPAGE] RODEO! [RAMP_F] @@ -14559,7 +14566,7 @@ L'heure est venue pour l'ange gardien des taxis Kaufman de froisser de la tôle! [TAX3_5:TAXIWA3] Hé mec, j'vais te bousiller ta caisse! -{ re3 updates } +{ reVC updates } { new languages } [FEL_JAP] JAPONAIS @@ -14570,8 +14577,137 @@ POLONAIS [FEL_RUS] RUSSE -[FEA_FMN] -RADIO ETEINTE +{ new display menus } +[FET_GFX] +GRAPHICS SETUP + +[FED_MIP] +MIP MAPPING + +[FED_AAS] +ANTI ALIASING + +[FED_FIL] +TEXTURE FILTERING + +[FED_BIL] +BILINEAR + +[FED_TRL] +TRILINEAR + +[FED_WND] +WINDOWED + +[FED_FLS] +FULLSCREEN + +[FEM_CSB] +CUTSCENE BORDERS + +[FEM_SCF] +SCREEN FORMAT + +[FEM_ISL] +MAP MEMORY USAGE + +[FEM_LOW] +LOW + +[FEM_MED] +MEDIUM + +[FEM_HIG] +HIGH + +[FEM_2PR] +PS2 ALPHA TEST + +[FEC_FRC] +FREE CAM + +{ Linux joy detection } +[FEC_JOD] +DETECT JOYSTICK + +[FEC_JPR] +Press any key on the joystick of your choice that you want to use on the game, and it will be selected. + +[FEC_JDE] +Detected joystick + +{ mission restart } +[FET_RMS] +REJOUER MISSION + +[FESZ_RM] +REJOUER? + +[FED_VPL] +VEHICLE PIPELINE + +[FED_PRM] +PED RIM LIGHT + +[FED_RGL] +ROAD GLOSS + +[FED_CLF] +COLOUR FILTER + +[FED_WLM] +WORLD LIGHTMAPS + +[FED_MBL] +MOTION BLUR + +[FEM_SIM] +SIMPLE + +[FEM_NRM] +NORMAL + +[FEM_MOB] +MOBILE + +[FED_MFX] +MATFX + +[FED_NEO] +NEO + +[FEM_PS2] +PS2 + +[FEM_XBX] +XBOX + +[FEC_IVP] +INVERT PAD VERTICALLY + +[FEM_NON] +NONE + +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index 1d126829..9350366d 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -1,4 +1,11 @@ -[RAMPAGE] +{ + New strings are at the bottom of file. + Do not change the order of strings. + You can fix the typos of existing translation but please refrain from + unnecessary edits like rephasing because you think it suits better for your taste. +} + +[RAMPAGE] AMOKLAUF!! [RAMP_F] @@ -14559,7 +14566,7 @@ Wird Zeit, dass der Schutzengel von Kaufman-Taxis eine vor den Latz kriegt! [TAX3_5:TAXIWA3] Hey, Freundchen, dir zieh ich das Fell über die Ohren! -{ re3 updates } +{ reVC updates } { new languages } [FEL_JAP] JAPANISCH @@ -14570,8 +14577,137 @@ POLNISCH [FEL_RUS] RUSSISCH -[FEA_FMN] -RADIO AUS +{ new display menus } +[FET_GFX] +GRAPHICS SETUP + +[FED_MIP] +MIP MAPPING + +[FED_AAS] +ANTI ALIASING + +[FED_FIL] +TEXTURE FILTERING + +[FED_BIL] +BILINEAR + +[FED_TRL] +TRILINEAR + +[FED_WND] +WINDOWED + +[FED_FLS] +FULLSCREEN + +[FEM_CSB] +CUTSCENE BORDERS + +[FEM_SCF] +SCREEN FORMAT + +[FEM_ISL] +MAP MEMORY USAGE + +[FEM_LOW] +LOW + +[FEM_MED] +MEDIUM + +[FEM_HIG] +HIGH + +[FEM_2PR] +PS2 ALPHA TEST + +[FEC_FRC] +FREE CAM + +{ Linux joy detection } +[FEC_JOD] +DETECT JOYSTICK + +[FEC_JPR] +Press any key on the joystick of your choice that you want to use on the game, and it will be selected. + +[FEC_JDE] +Detected joystick + +{ mission restart } +[FET_RMS] +MISSION WIEDERHOLEN + +[FESZ_RM] +WIEDERHOLEN? + +[FED_VPL] +VEHICLE PIPELINE + +[FED_PRM] +PED RIM LIGHT + +[FED_RGL] +ROAD GLOSS + +[FED_CLF] +COLOUR FILTER + +[FED_WLM] +WORLD LIGHTMAPS + +[FED_MBL] +MOTION BLUR + +[FEM_SIM] +SIMPLE + +[FEM_NRM] +NORMAL + +[FEM_MOB] +MOBILE + +[FED_MFX] +MATFX + +[FED_NEO] +NEO + +[FEM_PS2] +PS2 + +[FEM_XBX] +XBOX + +[FEC_IVP] +INVERT PAD VERTICALLY + +[FEM_NON] +NONE + +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index ac4b15e8..08c30e06 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -1,4 +1,11 @@ -[IN_VEH] +{ + New strings are at the bottom of file. + Do not change the order of strings. + You can fix the typos of existing translation but please refrain from + unnecessary edits like rephasing because you think it suits better for your taste. +} + +[IN_VEH] ~g~Ehi! Torna nel veicolo! [HEY] @@ -14579,8 +14586,137 @@ POLACCO [FEL_RUS] RUSSO -[FEA_FMN] -RADIO SPENTA +{ new display menus } +[FET_GFX] +GRAPHICS SETUP + +[FED_MIP] +MIP MAPPING + +[FED_AAS] +ANTI ALIASING + +[FED_FIL] +TEXTURE FILTERING + +[FED_BIL] +BILINEAR + +[FED_TRL] +TRILINEAR + +[FED_WND] +WINDOWED + +[FED_FLS] +FULLSCREEN + +[FEM_CSB] +CUTSCENE BORDERS + +[FEM_SCF] +SCREEN FORMAT + +[FEM_ISL] +MAP MEMORY USAGE + +[FEM_LOW] +LOW + +[FEM_MED] +MEDIUM + +[FEM_HIG] +HIGH + +[FEM_2PR] +PS2 ALPHA TEST + +[FEC_FRC] +FREE CAM + +{ Linux joy detection } +[FEC_JOD] +DETECT JOYSTICK + +[FEC_JPR] +Press any key on the joystick of your choice that you want to use on the game, and it will be selected. + +[FEC_JDE] +Detected joystick + +{ mission restart } +[FET_RMS] +RIGIOCA MISSIONE + +[FESZ_RM] +RIGIOCA? + +[FED_VPL] +VEHICLE PIPELINE + +[FED_PRM] +PED RIM LIGHT + +[FED_RGL] +ROAD GLOSS + +[FED_CLF] +COLOUR FILTER + +[FED_WLM] +WORLD LIGHTMAPS + +[FED_MBL] +MOTION BLUR + +[FEM_SIM] +SIMPLE + +[FEM_NRM] +NORMAL + +[FEM_MOB] +MOBILE + +[FED_MFX] +MATFX + +[FED_NEO] +NEO + +[FEM_PS2] +PS2 + +[FEM_XBX] +XBOX + +[FEC_IVP] +INVERT PAD VERTICALLY + +[FEM_NON] +NONE + +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index a23584a4..e63721df 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -1,4 +1,16 @@ -{ Grand Theft Auto Vice City Spanish (Spain) Translation } +{ + New strings are at the bottom of file. + Do not change the order of strings. + You can fix the typos of existing translation but please refrain from + unnecessary edits like rephasing because you think it suits better for your taste. + + SPANISH NOTE: + This is European Spanish, do not mix it with Latin American Spanish. + If you want the Latin American Spanish translation you'd have to create + a separate txt for it. +} + +{ Grand Theft Auto Vice City Spanish (Spain) Translation } { Contains some of the official fixes made by Rockstar for the iOS port } { Additional translation rewrites, corrections and fixes by IlDucci } [IN_VEH] @@ -14261,7 +14273,7 @@ POLACO RUSO { new display menus } -[FET_GRA] +[FET_GFX] CONFIGURACIÓN DE GRÃFICOS [FED_MIP] @@ -14371,8 +14383,26 @@ INVERTIR VERTICALIDAD MANDO [FEM_NON] NADA -[FEA_FMN] -RADIO APAGADA +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +MANDO DE XBOX 360 + +[FEC_ONE] +MANDO DE XBOX ONE + +[FEC_TYP] +TIPO DE MANDO + +[FET_AGS] +AJUSTES DE MANDO { end of file } [DUMMY] From aadc39eccda66baca70307cfd506f895f715377a Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Fri, 12 Feb 2021 08:46:32 +0200 Subject: [PATCH 079/113] Add missing rtpng.h --- src/fakerw/rtpng.h | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/fakerw/rtpng.h diff --git a/src/fakerw/rtpng.h b/src/fakerw/rtpng.h new file mode 100644 index 00000000..80f29020 --- /dev/null +++ b/src/fakerw/rtpng.h @@ -0,0 +1,4 @@ +#pragma once + +RwImage *RtPNGImageWrite(RwImage * image, const RwChar * imageName); +RwImage *RtPNGImageRead(const RwChar * imageName); From df336f5ba231860d660f91746ef3e9091ad08124 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Fri, 12 Feb 2021 09:20:35 +0200 Subject: [PATCH 080/113] Convert TXDs to VC version, delete unused controller shadows --- gamefiles/models/frontend_ds3.txd | Bin 590632 -> 524968 bytes gamefiles/models/frontend_ds4.txd | Bin 590632 -> 524968 bytes gamefiles/models/frontend_x360.txd | Bin 590632 -> 524968 bytes gamefiles/models/frontend_xone.txd | Bin 590632 -> 524968 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/gamefiles/models/frontend_ds3.txd b/gamefiles/models/frontend_ds3.txd index 1e5da6e1438f966125b32a94c41e1cfeb7295f06..0c9fc84056ffe23cd3dcbb657da484fb566bbfd8 100644 GIT binary patch delta 233 zcmZ3{rm~_{!9Hq)$ literal 590632 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�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 diff --git a/gamefiles/models/frontend_ds4.txd b/gamefiles/models/frontend_ds4.txd index e3cd2bffde10eded9a1b56e17cc0fbdff9378d0a..4841ecd1b140266d2076f862c55a171c55f68c70 100644 GIT binary patch delta 233 zcmZ3{rm~_{!9Hq)$ delta 26426 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 diff --git a/gamefiles/models/frontend_x360.txd b/gamefiles/models/frontend_x360.txd index 9ba773f29d4945aea2602dd61c90885b3afd9fef..7d82e769ada9b6c2c44b136d24beba7ce0da6fa0 100644 GIT binary patch delta 233 zcmZ3{rm~_{!9Hq)$ delta 29246 zcmZ3{s<5I>#YBvOfkB3uli~k=Mixc}1_l-e1~8kAfq_Akfq|iffd$M5$;Cj~jV7%o zjIAb2ttQM%*c=QD3`~Ly3~8zH$@zIDMfo{7sYS&ZlMgO6n);VT zdiwz}){TtY4~nsF7$7o=F+@S&_lE!f|1&^V0#_pHEjVckkcTJ0*YL=ph0 zV7R{rVE{;=s~nXd=7P#MRzl?q3Zn8Er|%bIRj5Z36;wo3WrSvGY8k5hj8iCl0Z>W< zxekI2Lr{G&{WUUQaVj*dA&MRTfD$Z10f+^`5P1k2L{gET1Tv3G+4(->e{M+rgg6jF zvVsydA1G0Oh6UBd|G&W2!uU`QJiF3@53V@qX(7ZDkTCcUjcA(s5Y0je7ap}x{|{IQ z!0m^-2lRtqA?Q$Jdw5Kg|J&;?`if*7n7 zOkmL;O-7XjHVaH(F_3|Q;XJ6y;`*--suHVRA-HV%x93GrO~lT? z$6(JeAJkUOsTW`fU^oD)Bw?#8V0@6PAsCX6A#4yyEk3-Oq?Umo$AK`B=E3cUh7Cw7 z1QTfhL^0V#8p8g8almMqIDi@QKLdjdD4D_25HtjV~H<#7=l9#J;8_798$2D;9$B0byO2aWo&LKcI1)=yw~ z!0?ITD?RfpBnd-uz(|k3(Z!%Nn8=4DFc1kzWFQsgsyd|77?p@ZSKbR)DybUU_;n4^uHgkdYohX&4sc^onz2`#|;& zWC(!mA3z8Ak`ZU1QV(taCTJ}L3j+tJS#4RL@PESp3;#b1RGuE_X3c1|2udLEOh#q` zBVYeOXDNvN1DB`$sMMR_X5eR#XRwFl=}-T^{Qvg<$7r4&m=FM^DR_>cQv8x)9?1TI zOVR%aYH0&Jh`|0Qy}Jt6Pid4 z%QTv&2QCEsDJ>LW`WgN+{%88n4C+s7*9$NRFu+d`pj!C@vkGn?C<9|lzVQAuE(I_X zXe1A}pJ*3T*FgyT2gU)Tg(|jGN!>VxnTBn=A_kPM@hKonp7}q^f7btOpd7AQufSjc zg4k>)%W$}BLAnWt-e?LRxGDowrhuBF@F)Wb(7Cq_vVR~$0BrvNIv|d?Y(jDrvHfQU zK}a44=Wqu2rXrFJgKHqqv7>o>023Gkq-hS1!qGfV_Yj~}9tY=eL_H2_tHX~brFVRf z=JC-yK9C_WeCu)6|16N+xJCWn|G)nKpyGkfBo-2*y+OkL84`n(q$~qY44e>-c zIQ(cUKRUfl=MFb0PLZM%lBbXaK=RbfG6dV&5c}z9A=rNi`>2(t^BL?J}NnX;Pe|*3;w~g225Pw5QqhHASg@z`X2y4lpn;0V2~=j4H2;Yh$IfT2%;U? z0*DAf1HlR)YC$BJi^qJ3{dg1*GJryPFG_s;9(0~O!~yIK%+q&^vD(!?U?^Y^00lWj z925rs>9~4jp!?Rzu&7**oObSuF~f7u|M_0vpn=Jow1T;C`P=_c`S16l@-vyI?-FCZ zU*Cu-{QrO8Z;%MgSWv(_rJ_bem@pFm{yb)6^=8jOJS6%5&Hor2koo`r|NgJ=9A^GN z2lN0G-1`4{{+AO9!(XZXYL2^K1#P={bxXhL{2lBZQ5ycb7uu#Y9U zPJno*4pdRV`P+|)v94yUhn68n|1&HGsY25GzwjSorxzqBKu2_eRDqHfLfis3{~4~Jdu0oiz0%79bBXZ(|Nqx}F(NE{ zufei?w;1a-a8S>vPlSaqg#PjCDKMmp>d0z;bZOX@5}p|Nko*fkfbj z{Z|I1O}P4XY7oN)@^(P_-bx6{htE~ORW`Wz#eJ<}>lT)&TUgViaI0uHVPu_d!pMeK c%@#(s>021t@v1RlVxMlp#F56w$b#%L0KaA?-T(jq diff --git a/gamefiles/models/frontend_xone.txd b/gamefiles/models/frontend_xone.txd index 848580e3f1a5d18afe78cd65d64e074870f63732..47bd87e89fcfa64512a1e0ee63b81cff84616922 100644 GIT binary patch delta 233 zcmZ3{rm~_{!9Hq)$ delta 29992 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 From b1698948e6fcd57f7f41206b3b85b1f88cbaa6e2 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Fri, 12 Feb 2021 12:59:39 +0200 Subject: [PATCH 081/113] Update TXDs --- gamefiles/models/frontend_ds3.txd | Bin 524968 -> 524968 bytes gamefiles/models/frontend_ds4.txd | Bin 524968 -> 524968 bytes gamefiles/models/frontend_x360.txd | Bin 524968 -> 524968 bytes gamefiles/models/frontend_xone.txd | Bin 524968 -> 524968 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/gamefiles/models/frontend_ds3.txd b/gamefiles/models/frontend_ds3.txd index 0c9fc84056ffe23cd3dcbb657da484fb566bbfd8..06518848e6f069e39798eb58cba692e583c402be 100644 GIT binary patch delta 162 zcmZ3{s<5I}p`nGbg{g(Pg{6gc3mXgf_6AXAU8e1ZJS>6M%bUDeIJP$hu&D|#zTLhe zflZ2+@%r||xojVp8UJqIQph%+jq$_wkP0>KLoF_vWmWw?{OybPF*uY=1J9MVN)Lcl(c-EZ&T)ynpS#?w@?HcjtD-IV=K$XP delta 48 zcmZ3{s<5I}p`nGbg{g(Pg{6gc3mXgf_7*PI1^(NYM6q3T*#31E>xHy-S0?u9u1p-s E0IL}hD*ylh diff --git a/gamefiles/models/frontend_x360.txd b/gamefiles/models/frontend_x360.txd index 7d82e769ada9b6c2c44b136d24beba7ce0da6fa0..acb330998aeba28b18a6219925846727f6e05eb2 100644 GIT binary patch delta 108 zcmZ3{s<5I}p`nGbg{g(Pg{6gc3!94Y_65c)Zy2`=h_I-XZ8zy=Tf;p0!cxQSg8gjg vp{&Vlm)R#@SgN~Sa5h|QKAg3f?L7113riWdKUl_+8rAN~#6I1Xi6a>R$@nTo delta 47 zcmZ3{s<5I}p`nGbg{g(Pg{6gc3!94Y^aWz9EZbKIvGP=G-_p(gqO4tpiG8{Z6GsmK DfM*X+ diff --git a/gamefiles/models/frontend_xone.txd b/gamefiles/models/frontend_xone.txd index 47bd87e89fcfa64512a1e0ee63b81cff84616922..b092e8e20be201a554d15ddf4ae5cad3af9f140a 100644 GIT binary patch delta 189 zcmZ3{s<5I}p`nGbg{g(Pg{6gc3mc2@_67PZHcZF*3_A_-~)6&tl26t&$~(i}Awp;AR#^Mu+VoEi5@qj8~=~Y-15+T)6#u8;c$D zcF}IO)6A1U%s1RF*w1#JdAh?y7Q^j=li4n?PyR69V7uUKw)0@=>4Njw>=~K12hL~f nhYBoab7Bx+hv&8r^_&L^Z)=XeGIz* From e98164ec41c3629c592bb31d8b110d85626c5e3c Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Fri, 12 Feb 2021 18:00:20 +0200 Subject: [PATCH 082/113] Sync aspect ratio setting with master --- gamefiles/TEXT/american.gxt | Bin 423974 -> 423994 bytes gamefiles/TEXT/french.gxt | Bin 469972 -> 469996 bytes gamefiles/TEXT/german.gxt | Bin 461770 -> 461790 bytes gamefiles/TEXT/italian.gxt | Bin 458926 -> 458946 bytes gamefiles/TEXT/spanish.gxt | Bin 455258 -> 455278 bytes src/core/Frontend.cpp | 28 ++++++++++++++++++++++------ src/render/Draw.cpp | 36 ++++++++++++++++++++++++++++-------- src/render/Draw.h | 10 +++++++--- utils/gxt/american.txt | 3 +++ utils/gxt/french.txt | 3 +++ utils/gxt/german.txt | 3 +++ utils/gxt/italian.txt | 3 +++ utils/gxt/spanish.txt | 3 +++ 13 files changed, 72 insertions(+), 17 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index 077590fb0976acafbf2272ce47e92441fc32b50c..4db81fc6e878ff9e43d0c1e18f6fae4364124bd9 100644 GIT binary patch delta 1013 zcmZ4XL2}mz$q6#`CAXOv9D{>B{R|lxD(*wsMhpxq9zog03=B(NK-ne?3>+V!Y*Pk? zn%_(ePL6)wUWN<|Q~pEQMhpxNT+9%0V+IBZSt#3tfuTSH#18TY+4aT+%&zzMGh$%) z;RELQ`x!GZI7CC)CJYQ2Nl>;a0|QF|GlP?-x2quo1A|RDgl)vYz|d0%VH-0rFx=>1 zW^nS2hzF_JF@c%E$=@-=DKwJ7Vg5#K6F_9>fmy3o&G1;MoLa8!<2(*w4)19O~o<@`1}~DBFmEA?7BOZOp)s@(jv0 zVPLrMftkV0)6dbzm4RUoGYf;8XOL@1kT=5vMHU8kS3lRFdPhTs9t|kR(TE|z9L6?g z_~Qg)n=r^E!q}z^R|;7eJRChiZetK>fUrR!;nM?QgF?b!Dhq>$e~7CO0|Uc^IV=pG z&aTcuu7(T;mO|K}Aq)&tHnK3(d-{b0`7m&Wgt3hn*08cd#f=$6)L?8AhBd~l48ER@zMk=h3|Aak8GL;iz`(?X zmBByE(I?2$oq@xhl_9{x)5nm3p`Jm)AHo6o;6WHGLx5*glp_NJLqj4fLx6t}D5M!e z@*r%G8iNK18{|ueE(qI%fq~)5d{%~lAb)VEoLCQGgVpbautDl2j<7NWIXb%rGcYh5 zxyH&6f>q1aOMt(6X4_LYRHgtAH)VJGh|SC#L5ul@9YgqPj5GUJ|?#Khp{>KpGE8nT(&YNH+Fisro)?RzU2 mx9_cBTA0M{$Pmg9!r}{6qvA0=I&H(_4=J0(0 delta 993 zcmdn>L2}s#$q6#`3AdRT9D{>B{R|lxQtm_9Mhpy79zog03=9)qK-ne?3|~G#*`^E( z8NZnroE-hUy$l%`8vaAsMhpx(T+9%0V+IBmSt#3tfgwf%#18TY*>%GO%&zzMGh$$P z;sfUR`x!GZ=tM)=CJYQANl>;a1H*@WW(FruZ&yPG1_q6C2-}E(fuW)f!Zv1LU^vpj z%;4l35f4(cWCAmTlfPq#Q)ncE$wX!bXU71rc*HaiI|wAqAh4_+%n5J|GGsWjhMB?H zKfu{Bh=Jk9IuJY5FT{|6;m1ZO+lYZ-&3x#t_%z-m{}OyJcC?Ag1i~dD6%lPyZX5X)jJw8RA@jsjz$bV<}kJ~ z!wV-E+k}B55ym!UI8eyK;Nj>AavK9f1B49<35y;G8x#^UQ&|{1{6k!Q7#J98=CCk$ zI=eatxf(L8Sqfo?hA=QRY-C}m_w)-1@@HURSh16Z!P^z=VTOh)EDYYB&fdWxAq*jR zSr~jA!y{dT3>h9ggt3hnX0WnC#f=#l)L?8Ah8f1J48ER@zMk=h3~th5*l~C`SechMYuJh5-K{P)IX4 z`K$~9LH^)S*|HwO2CLr-VT07O9ARY$a&&eLW?*30 zaE+BA$hqFb)yLD2VaFX1C&0(g)sP|LK8OucX2>A$h?OD8-`N|KpjJGAutA1?`3hl! z41MySl_A(Q$Q`6cM1c*=2B}HVg0Mkq<`}avgg8ccg47rUL)gxtAq+oslOddNM?(gd zJQ&-E;Z7lpZOl+n!p0Ed?Hc)|Wb+|rFSE@ORvYXX=QW?KXg^uOxcy`W)54_oqT5XE SMYoyTi*B=QFS^ZoVh#Z3`tDo+ diff --git a/gamefiles/TEXT/french.gxt b/gamefiles/TEXT/french.gxt index 541f98e6b5da0952b96abe7a0fc636ab9af64fb4..36f4225cc4cb9ee8724d84ad25b43a1f9322c13e 100644 GIT binary patch delta 1013 zcmca|UFOYonF%uWDQ3(Jj={m6eufMTORS)5BL;>UHc+-P1A~Dxlx@Pmkm3Vnn=&wX zgflZZIr@2f88R?jh=#I_7#J?3LD|L(3@Q~+wh05nkrog;$RA{v!U{0E-rvuNf#J#q zFvs5yq~QRRZNk8?-~^Oy%E0jEIx~Zlr?;yi0|SH1eF)o#fq~)3a|qj*fq}u~Gc$ve zZ$vyuP0Vj*1}A^V5U0>c2Ax0549<=LVDSP*76xa>AdoP_0l|7OC%`etkl}&^3xl(N zfU{!|1A~Dyh#l$|0tyv5DBFmEfkT&t!8z2)5#$373n<%&f#HBVlx@tw@Ff(=Hep~e zNn~Mg^YnA{ab;lmQUYQJxrPLJGc1_R!r<=e=NeS+XvlD35tQR-#PDJhjBU)&vLD7a zVYqW2#x`Zh`N+cH;pho+8^Z$zRxleB5*d6DHYg-^h_f*?t08E?ptaGaIF*Ovhd1WvIs_=h?A z1bMnMn4D#02=MUqF=SwD`XAA}83uM)<_5aj6W8qC1Jz?03! z5ae9%;p*dQ$nc;L#0l{6b2Vg`Q3_&%lo>M2sbFIW@^|(IC8#}B5H`qAiyjCYWT?pu zHilr=Aa{@&i!%^5NR7mG2pgp4!~-^l5XT5lkeU`|b}-vHG=xD%M-;*dcQj$DHXmfJHsdbY#l+y|>KpGE8nW5iYNjJ&UGvrI_N+pktL iRqWzm2xSOi@MmCX_cUW}_cUW^_cUYO?rFx>{S^S2G3wg@ delta 992 zcmaEJUFOPlnF%uWK4#1ej={m6eufMTJyuY*5d%Ym4U}!nz#!oaWt%WC`1nBCrVI=Q z;miz9j(*-=h71flqM>Xf28JDJP_{7x15X8%ZNk8?rUk?f@(0<)u>#Dl_xCemVA!(( z%<=aFX*d97n=mkRoPe@T85piyXJ&Bn^ma95U|?Xm4`CZIFfgon4q+QJFfhn`W@d2m zjfe-Sarw>6;N?YBu}v95KC&=)IC_HI#&Cjx70d>OL;xRz4GM_`;;alF{vobD3=9kn@~jM=&aTcu zu7(UdG$HKJ5C(=4BUXlbPrr~Le+CAI71pc_-mYK|GrS38W$^ZN_6`mSVVDrj%HZP| z9_bon$Y7HIV;eCPw87ZM3=Jz`Y!ikFJ6IWfJso{L;|&=+jg^e8CG0{a6mqgxyQ;7;29O=$iTob;Uz0WfPWAuq#4$HgRntr zGPu~l;vip&h(XvU3=9lgblDgJg8adua>owB2C1Lo2VsNM^MtW61UWjp1~V`)e92;C z2y(9XaP{#tWH?a>;sp5kxf(Jwl!DkGWrhqb6>JPa{?6W@1hu3J!Uh?t&;wzE43(L| z#t`fpGaMO9njcoTKdffl{;-;#UFP0&nF%uWJhIFTj={m6eufMT5sFZ@5d*^v6)4-7fq_FC$~IwOm}3fMn=&xm zabjk0a`f}|GGt(2afh;v7#I?Qplo9X2A4D_+k}C^p$Nnd@(0;^KWy8#6F4Ot`_! z;N%+-4^p$`0W*V>zhj6~Xe2|(LuLkN#{jVSjAtNr5J;F|#gBS0C%`etkb#GRg~8cB zz}Yc~fx(3d#18cfF=SxazzSs>F)%z4W?^s+b#esxfJYw6Hez7#(Sx#$85lxrpllNc zh8gZG3~ru&jy|po3^~ytc93gGkT=7L8Wsk3S3lRFdPhSBhZZQu(TE{nDvWK+;IatD zHeqNu1Y?^roVmin;Nj>AavQ^*ClEF$B%XYPut6cw@tcLg!#~8;hk=2CfrXX9)7jNI z$kmYH4=;or8p6PEL5h{3-qSB6$e)3M!9<0X!P^z=VTKoWtPI|s&fdWxAq)W?tPDPm z;gPOEh72ygFt!ncOd*VI%7x-%qfVPy#L@boccV5nzE*$d%-d|+~nl_9`0D$0?8fkERUD?@;P5GbS>BJM-j zAT=zXAZ(B?*ZhI7O&Ay$E(ozP1O)kmLq$ay!Um~lFoLi_>SHX~7=j#~U4udC#)pj| z$hqFb)yLD2VNNiJ6X4_LYRFI#24aJh88YmMWMc^OclHJ)s24F1HpozgdB{R|lxToj>fBL;>R6)4-7f#Hi5lx@Pm&|wN?n=&w* zaAIa~a`f}|GGt)*;09$IF);W9LD|L(3o$;N0W*V>zhj6~Xe5KfLuLkN#{jT+%QFx=2qerf+mvC)6&3~$M^BL37*;%iut6bl;Uk0%3W<{6EDRq0A+A0Q3=D6WSs6T? zU7dqm4H;hWLfD}p3=DguSQ+X){X&BL85kH8R9G3jUBMn^xMIi3;O*(`9UKzEVB^8c z;Nut`=^A9nVBia58!>Pc!q~VV`cF5WdMVajjRm* zVU9jQp6(1jTUZ$aJUo3285rsr0`@{UARj0kV`T{NjEZt(U|BfhR zA;`Jj!_~*rkf9?O#0l{6b2Vg02?Mb~$_yEnM6xji`8#`q64aF#2peQ5Pdmbslv QmZhCbmUTOqEZdcL04wX z=J@*=Gcase17({qFznd^Wt%cE_#9?taPstaHDq95a5x2F8!<32%(w($8#6F4Y`M$K z;N%+-4^qSMjG4j7-!a4~G?L-WGiC;7#{jT+$7>Kf2qes)^QRun32+QDWO%~F!r<&5 z;OrR0z~I6PVu$*L7&0*I;efJ@7#O~Yu`oD?Iyr)Tz@iLg8!<4vFod#=85oY(L)j(_ z40F6#7~DMl9DQ6F7+m5&>>$^WAa8~x%`6P=u70jT^^S%NYr3EuMtYfgNLIh$ZZT9Pa$kjNUZq?VS_@#;x`L}hkuBx4+8_kA0}1?PiI%> zAXh_%3LXeMG=zcSj3_HZy{BJDkUs+h!wxxC25(oehZ!V{SsA=NoxOuYLKq5cSQ&gA z!y{dT3>i`!VQeD?pL7`8n1Q7e#x`LPn8C{6>*?t08E?qYv5b|$*OvhdY*w-|_=h?A z1bMnMl&oQ82=MUqF=Sw;bIXb%rGcYh*abjZ# za<2Dq_3<=h_}~fR1o-&58Zzwh1+hWO3>g{%*cgKRoxMQ`YC{l&4Kmau1;Pdys*}&g z5bPS{4pOsbA%qQ5b7T#K4N{Y`jg2A1F~Sq1CgKK!?Hn4y5Tf%6!U=aYWXSjmV;eD4 z{DiTM8D##jF@$)#MjC8B$UNDM+iN8ggPW^wykls{=3uLtj*KDAZ>!tiRx@sYTg~LV flHHLZlp%z{zui)mx!qEgrQK4Mb-Sf1Tj^~8pPlHw delta 992 zcmX@qD6_6nW`az;jVd#PV{ovipCJQ7f+m!0#K6#@4P_fMFt8Xw*(MAO0oG8qDFee3 zS7rt$M?Y^bLk0#GFDToHfuSN4$~ITPK7@YkB zoE?K07z|iJ>`=cDLk5Nw98k6q1H%I`76#`~Cr6MEJ}5!iMhpyB454ge28IpxP__vJ zLx&d&gPW(HqmL^CgFzgK9poAk*?t08E?o?vW%6%*OvhdG*+@Q_=h?A z1bMnMB&=a&2=MUqF=SwEn1SOD8$*bg?6*g)Av3=AC}P_{7xgGwxvZNk8ilL=x6`Gf3Y=>)Uu{r!v>7(^z5 zIsSge3=A_CK-ne?3^$fT*`^E(TedMXIC*-z8Zt02EZGNP8!<32%sB>O8#6F41YBfh zaPp0a2dTMmlbONE-!a4~G?F3b7BhphV*psZ;y#ES1QKRo_)rh#1ULp6GMxFw%;4-F z;OrR0z##Aw#18cfF=Sxa@dwH_Vql2iVqtI&b#esxKtmkLHez5%QG>FL85m+rpllNc zh75Za1~*SXM;})Ph6%wSc93gGkT-)&F$;sctDkF7y`v$6OBIykXvFZO6UH`XFqj5o zn=s^TgRxB+CY)el@No15xs74YbqE_25(l0@*r1U3@s@?b!#~8;hk=3N%2yT!PiI%> zAXh_%IsYN-&=3ZOB|NMQ^`3qqLH-O33@W0m4BoC_4>PFfvod&lI(r9)gfMKdU}f-e z43BgTGGv%w3u7BGTuFkljTtyvU~ChHGm}^ud_5g~J>v}-Iu^1r`1&${fy)wB2LCWe zpCC_nhJxj+3;`aVK86eo^$ZakARLen40f_I1b9Y8If5K?gq0z{KL`}k3|B5f*dR3y zPa$lOFBg1(utDi^3L6_kK#)H;R8%A&Y>@gIbqE`zeu5qwLy)7hYcK-?gM>31Ly&X5 zhpUgLA;S+(5GTOL&()COjt__pQfA0-!k>*H$luu;l%QmSA#9ML3TY5F$k3ERHilr= zAa{@&ohcADNR7;V2pgn^XC)g$h+~8&NX?y75Vmt@2!oH#9SA4f(U5`RIgD+@pz<2V zHfE4{$Hoxi?Hajb^Fd}~Gwwxmm>Aq#ed8TNLpFc5Y_#KCGlz+xjv<|)Zu8+k}B3A``?8@(0=Vp##jW_xCemU|^UC z=J@*=GcdF)fU->(7>+E5vP~Hn7Hnf?aPstaHDq95n6MAR25Id$24NdBFfiC$WM**k zjfe-S*>jVb!O7n-#3?kAA>tM@gR^4*SUlxEh#dqHW_a_y9?S`F3^HWc@r{|m*+0P9 zF^GZT&kqng)Gx%4fnmuXDBFmE!G(*3!8z2)5#$3AaVXn}fgwN*$~I{%GxJpCMfTp1W@fq3g zU4sl6YHVR_BZdP>Ft#znmu48-gki@dRt8^BM_ 0) { m_PrefsUseWideScreen++; - if (m_PrefsUseWideScreen > 2) + if (m_PrefsUseWideScreen > AR_MAX - 1) m_PrefsUseWideScreen = 0; } else { m_PrefsUseWideScreen--; if (m_PrefsUseWideScreen < 0) - m_PrefsUseWideScreen = 2; + m_PrefsUseWideScreen = AR_MAX - 1; } SaveSettings(); break; diff --git a/src/render/Draw.cpp b/src/render/Draw.cpp index 13cbd1b3..9c5921c3 100644 --- a/src/render/Draw.cpp +++ b/src/render/Draw.cpp @@ -30,28 +30,48 @@ bool CDraw::ms_bFixRadar = true; bool CDraw::ms_bFixSprites = true; #endif +#ifdef ASPECT_RATIO_SCALE +float +FindAspectRatio(void) +{ + switch (FrontEndMenuManager.m_PrefsUseWideScreen) { + case AR_AUTO: + return SCREEN_WIDTH / SCREEN_HEIGHT; + default: + case AR_4_3: + return 4.0f / 3.0f; + case AR_5_4: + return 5.0f / 4.0f; + case AR_16_10: + return 16.0f / 10.0f; + case AR_16_9: + return 16.0f / 9.0f; + case AR_21_9: + return 21.0f / 9.0f; + }; +} +#endif + float CDraw::CalculateAspectRatio(void) { - if (FrontEndMenuManager.m_PrefsUseWideScreen) { #ifdef ASPECT_RATIO_SCALE - if (TheCamera.m_WideScreenOn) - CDraw::ms_fAspectRatio = FrontEndMenuManager.m_PrefsUseWideScreen == AR_AUTO ? - (5.f / 3.f) * (SCREEN_WIDTH / SCREEN_HEIGHT) / (16.f / 9.f) : - 5.f / 3.f; // It's used on theatrical showings according to Wiki - else - CDraw::ms_fAspectRatio = FrontEndMenuManager.m_PrefsUseWideScreen == AR_AUTO ? SCREEN_WIDTH / SCREEN_HEIGHT : 16.f / 9.f; + if (TheCamera.m_WideScreenOn) + CDraw::ms_fAspectRatio = (5.f / 3.f) * FindAspectRatio() / (16.f / 9.f); // It's used on theatrical showings according to Wiki + else + CDraw::ms_fAspectRatio = FindAspectRatio(); #else + if(FrontEndMenuManager.m_PrefsUseWideScreen) { if (TheCamera.m_WideScreenOn) CDraw::ms_fAspectRatio = 5.f / 3.f; // It's used on theatrical showings according to Wiki else CDraw::ms_fAspectRatio = 16.f / 9.f; -#endif } else if (TheCamera.m_WideScreenOn) { CDraw::ms_fAspectRatio = 5.f/4.f; } else { CDraw::ms_fAspectRatio = 4.f/3.f; } +#endif return CDraw::ms_fAspectRatio; } diff --git a/src/render/Draw.h b/src/render/Draw.h index e67ab42b..b96fa813 100644 --- a/src/render/Draw.h +++ b/src/render/Draw.h @@ -4,10 +4,14 @@ enum eAspectRatio { // Make sure these work the same as FrontEndMenuManager.m_PrefsUseWideScreen // without widescreen support - AR_4_3, - AR_16_9, - AR_AUTO, + AR_4_3, + AR_5_4, + AR_16_10, + AR_16_9, + AR_21_9, + + AR_MAX, }; class CDraw diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index b39d9a1b..2507d388 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -14420,6 +14420,9 @@ GAMEPAD TYPE [FET_AGS] GAMEPAD SETTINGS +[FEM_AUT] { aspect ratio related } +AUTO + { end of file } [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index f88a9158..d5983e95 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -14709,6 +14709,9 @@ GAMEPAD TYPE [FET_AGS] GAMEPAD SETTINGS +[FEM_AUT] { aspect ratio related } +AUTO + [DUMMY] THIS LABEL NEEDS TO BE HERE !!! AS THE LAST LABEL DOES NOT GET COMPILED \ No newline at end of file diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index 9350366d..f5ff5e24 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -14709,6 +14709,9 @@ GAMEPAD TYPE [FET_AGS] GAMEPAD SETTINGS +[FEM_AUT] { aspect ratio related } +AUTO + [DUMMY] THIS LABEL NEEDS TO BE HERE !!! AS THE LAST LABEL DOES NOT GET COMPILED \ No newline at end of file diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index 08c30e06..4773cde8 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -14718,6 +14718,9 @@ GAMEPAD TYPE [FET_AGS] GAMEPAD SETTINGS +[FEM_AUT] { aspect ratio related } +AUTO + [DUMMY] THIS LABEL NEEDS TO BE HERE !!! AS THE LAST LABEL DOES NOT GET COMPILED \ No newline at end of file diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index e63721df..82c1958c 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -14404,6 +14404,9 @@ TIPO DE MANDO [FET_AGS] AJUSTES DE MANDO +[FEM_AUT] { aspect ratio related } +AUTO + { end of file } [DUMMY] THIS LABEL NEEDS TO BE HERE !!! From 2c784d979a88035176082edf986a2c02b9073338 Mon Sep 17 00:00:00 2001 From: erorcun Date: Fri, 12 Feb 2021 01:49:09 +0300 Subject: [PATCH 083/113] Remove version text, add toggleable debug info(with commit hash!) --- .gitignore | 4 +- premake5.lua | 836 +++++++++++++++++++++-------------------- printHash.bat | 26 ++ printHash.sh | 14 + src/core/config.h | 4 + src/core/main.cpp | 57 ++- src/core/re3.cpp | 14 +- src/extras/GitSHA1.cpp | 2 + src/extras/GitSHA1.h | 1 + 9 files changed, 538 insertions(+), 420 deletions(-) create mode 100644 printHash.bat create mode 100644 printHash.sh create mode 100644 src/extras/GitSHA1.cpp create mode 100644 src/extras/GitSHA1.h diff --git a/.gitignore b/.gitignore index 3d2c6338..ca4dc200 100644 --- a/.gitignore +++ b/.gitignore @@ -357,4 +357,6 @@ sdk/ codewarrior/reVC_Data/ codewarrior/Release/ -codewarrior/Debug/ \ No newline at end of file +codewarrior/Debug/ + +src/extras/GitSHA1.cpp \ No newline at end of file diff --git a/premake5.lua b/premake5.lua index b0a432bb..d6d139dd 100644 --- a/premake5.lua +++ b/premake5.lua @@ -1,416 +1,420 @@ -newoption { - trigger = "glewdir", - value = "PATH", - description = "Directory of GLEW", - default = "vendor/glew-2.1.0" -} - -newoption { - trigger = "glfwdir64", - value = "PATH", - description = "Directory of glfw", - default = "vendor/glfw-3.3.2.bin.WIN64", -} - -newoption { - trigger = "glfwdir32", - value = "PATH", - description = "Directory of glfw", - default = "vendor/glfw-3.3.2.bin.WIN32", -} - -newoption { - trigger = "with-asan", - description = "Build with address sanitizer" -} - -newoption { - trigger = "with-librw", - description = "Build and use librw from this solution" -} - -newoption { - trigger = "with-opus", - description = "Build with opus" -} - -newoption { - trigger = "lto", - description = "Use link time optimization" -} - -if(_OPTIONS["with-librw"]) then - Librw = "vendor/librw" -else - Librw = os.getenv("LIBRW") or "vendor/librw" -end - -function getsys(a) - if a == 'windows' then - return 'win' - end - return a -end - -function getarch(a) - if a == 'x86_64' then - return 'amd64' - elseif a == 'ARM' then - return 'arm' - elseif a == 'ARM64' then - return 'arm64' - end - return a -end - -workspace "reVC" - language "C++" - configurations { "Debug", "Release", "Vanilla" } - startproject "reVC" - location "build" - symbols "Full" - staticruntime "off" - - if _OPTIONS["with-asan"] then - buildoptions { "-fsanitize=address -g3 -fno-omit-frame-pointer" } - linkoptions { "-fsanitize=address" } - end - - filter { "system:windows" } - platforms { - "win-x86-RW34_d3d8-mss", - "win-x86-librw_d3d9-mss", - "win-x86-librw_gl3_glfw-mss", - "win-x86-RW34_d3d8-oal", - "win-x86-librw_d3d9-oal", - "win-x86-librw_gl3_glfw-oal", - "win-amd64-librw_d3d9-oal", - "win-amd64-librw_gl3_glfw-oal", - } - - filter { "system:linux" } - platforms { - "linux-x86-librw_gl3_glfw-oal", - "linux-amd64-librw_gl3_glfw-oal", - "linux-arm-librw_gl3_glfw-oal", - "linux-arm64-librw_gl3_glfw-oal", - } - - filter { "system:bsd" } - platforms { - "bsd-x86-librw_gl3_glfw-oal", - "bsd-amd64-librw_gl3_glfw-oal", - "bsd-arm-librw_gl3_glfw-oal", - "bsd-arm64-librw_gl3_glfw-oal" - } - - filter { "system:macosx" } - platforms { - "macosx-arm64-librw_gl3_glfw-oal", - "macosx-amd64-librw_gl3_glfw-oal", - } - - filter "configurations:Debug" - defines { "DEBUG" } - - filter "configurations:not Debug" - defines { "NDEBUG" } - optimize "Speed" - if(_OPTIONS["lto"]) then - flags { "LinkTimeOptimization" } - end - - filter "configurations:Vanilla" - defines { "VANILLA_DEFINES" } - - filter { "platforms:win*" } - system "windows" - - filter { "platforms:linux*" } - system "linux" - - filter { "platforms:bsd*" } - system "bsd" - - filter { "platforms:macosx*" } - system "macosx" - - filter { "platforms:*x86*" } - architecture "x86" - - filter { "platforms:*amd64*" } - architecture "amd64" - - filter { "platforms:*arm*" } - architecture "ARM" - - filter { "platforms:macosx-arm64-*" } - buildoptions { "-target", "arm64-apple-macos11", "-std=gnu++14" } - - filter { "platforms:macosx-amd64-*" } - buildoptions { "-target", "x86_64-apple-macos10.12", "-std=gnu++14" } - - filter { "platforms:*librw_d3d9*" } - defines { "RW_D3D9" } - if(not _OPTIONS["with-librw"]) then - libdirs { path.join(Librw, "lib/win-%{getarch(cfg.architecture)}-d3d9/%{cfg.buildcfg}") } - end - - filter "platforms:*librw_gl3_glfw*" - defines { "RW_GL3" } - includedirs { path.join(_OPTIONS["glewdir"], "include") } - if(not _OPTIONS["with-librw"]) then - libdirs { path.join(Librw, "lib/%{getsys(cfg.system)}-%{getarch(cfg.architecture)}-gl3/%{cfg.buildcfg}") } - end - - filter "platforms:*x86-librw_gl3_glfw*" - includedirs { path.join(_OPTIONS["glfwdir32"], "include") } - - filter "platforms:*amd64-librw_gl3_glfw*" - includedirs { path.join(_OPTIONS["glfwdir64"], "include") } - - filter "platforms:win*librw_gl3_glfw*" - defines { "GLEW_STATIC" } - - filter {} - - function setpaths (gamepath, exepath) - if (gamepath) then - postbuildcommands { - '{COPYFILE} "%{cfg.buildtarget.abspath}" "' .. gamepath .. '%{cfg.buildtarget.name}"' - } - debugdir (gamepath) - if (exepath) then - -- Used VS variable $(TargetFileName) because it doesn't accept premake tokens. Does debugcommand even work outside VS?? - debugcommand (gamepath .. "$(TargetFileName)") - dir, file = exepath:match'(.*/)(.*)' - debugdir (gamepath .. (dir or "")) - end - end - end - -if(_OPTIONS["with-librw"]) then -project "librw" - kind "StaticLib" - targetname "rw" - targetdir(path.join(Librw, "lib/%{cfg.platform}/%{cfg.buildcfg}")) - files { path.join(Librw, "src/*.*") } - files { path.join(Librw, "src/*/*.*") } - - filter { "platforms:*x86*" } - architecture "x86" - - filter { "platforms:*amd64*" } - architecture "amd64" - - filter "platforms:win*" - defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" } - staticruntime "on" - buildoptions { "/Zc:sizedDealloc-" } - - filter "platforms:bsd*" - includedirs { "/usr/local/include" } - libdirs { "/usr/local/lib" } - - filter "platforms:macosx*" - -- Support MacPorts and Homebrew - includedirs { "/opt/local/include" } - includedirs {"/usr/local/include" } - libdirs { "/opt/local/lib" } - libdirs { "/usr/local/lib" } - - filter "platforms:*gl3_glfw*" - staticruntime "off" - - filter "platforms:*RW34*" - flags { "ExcludeFromBuild" } - filter {} -end - -local function addSrcFiles( prefix ) - return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.rc" -end - -project "reVC" - kind "WindowedApp" - targetname "reVC" - targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}" - - if(_OPTIONS["with-librw"]) then - dependson "librw" - end - - files { addSrcFiles("src") } - files { addSrcFiles("src/animation") } - files { addSrcFiles("src/audio") } - files { addSrcFiles("src/audio/eax") } - files { addSrcFiles("src/audio/oal") } - files { addSrcFiles("src/buildings") } - files { addSrcFiles("src/collision") } - files { addSrcFiles("src/control") } - files { addSrcFiles("src/core") } - files { addSrcFiles("src/entities") } - files { addSrcFiles("src/math") } - files { addSrcFiles("src/modelinfo") } - files { addSrcFiles("src/objects") } - files { addSrcFiles("src/peds") } - files { addSrcFiles("src/render") } - files { addSrcFiles("src/rw") } - files { addSrcFiles("src/save") } - files { addSrcFiles("src/skel") } - files { addSrcFiles("src/skel/glfw") } - files { addSrcFiles("src/text") } - files { addSrcFiles("src/vehicles") } - files { addSrcFiles("src/weapons") } - files { addSrcFiles("src/extras") } - - includedirs { "src" } - includedirs { "src/animation" } - includedirs { "src/audio" } - includedirs { "src/audio/eax" } - includedirs { "src/audio/oal" } - includedirs { "src/buildings" } - includedirs { "src/collision" } - includedirs { "src/control" } - includedirs { "src/core" } - includedirs { "src/entities" } - includedirs { "src/math" } - includedirs { "src/modelinfo" } - includedirs { "src/objects" } - includedirs { "src/peds" } - includedirs { "src/render" } - includedirs { "src/rw" } - includedirs { "src/save/" } - includedirs { "src/skel/" } - includedirs { "src/skel/glfw" } - includedirs { "src/text" } - includedirs { "src/vehicles" } - includedirs { "src/weapons" } - includedirs { "src/extras" } - - if _OPTIONS["with-opus"] then - includedirs { "vendor/ogg/include" } - includedirs { "vendor/opus/include" } - includedirs { "vendor/opusfile/include" } - end - - filter "platforms:*mss" - defines { "AUDIO_MSS" } - includedirs { "vendor/milessdk/include" } - libdirs { "vendor/milessdk/lib" } - - if _OPTIONS["with-opus"] then - filter "platforms:win*" - libdirs { "vendor/ogg/win32/VS2015/Win32/%{cfg.buildcfg}" } - libdirs { "vendor/opus/win32/VS2015/Win32/%{cfg.buildcfg}" } - libdirs { "vendor/opusfile/win32/VS2015/Win32/Release-NoHTTP" } - filter {} - defines { "AUDIO_OPUS" } - end - - filter "platforms:*oal" - defines { "AUDIO_OAL" } - - filter {} - if(os.getenv("GTA_VC_RE_DIR")) then - setpaths("$(GTA_VC_RE_DIR)/", "%(cfg.buildtarget.name)") - end - - filter "platforms:win*" - files { addSrcFiles("src/skel/win") } - includedirs { "src/skel/win" } - buildoptions { "/Zc:sizedDealloc-" } - linkoptions "/SAFESEH:NO" - characterset ("MBCS") - targetextension ".exe" - if(_OPTIONS["with-librw"]) then - -- external librw is dynamic - staticruntime "on" - end - - filter "platforms:win*glfw*" - staticruntime "off" - - filter "platforms:win*oal" - includedirs { "vendor/openal-soft/include" } - includedirs { "vendor/libsndfile/include" } - includedirs { "vendor/mpg123/include" } - - filter "platforms:win-x86*oal" - libdirs { "vendor/mpg123/lib/Win32" } - libdirs { "vendor/libsndfile/lib/Win32" } - libdirs { "vendor/openal-soft/libs/Win32" } - - filter "platforms:win-amd64*oal" - libdirs { "vendor/mpg123/lib/Win64" } - libdirs { "vendor/libsndfile/lib/Win64" } - libdirs { "vendor/openal-soft/libs/Win64" } - - filter "platforms:linux*oal" - links { "openal", "mpg123", "sndfile", "pthread" } - - filter "platforms:bsd*oal" - links { "openal", "mpg123", "sndfile", "pthread" } - - filter "platforms:macosx*oal" - links { "openal", "mpg123", "sndfile", "pthread" } - includedirs { "/usr/local/opt/openal-soft/include" } - libdirs { "/usr/local/opt/openal-soft/lib" } - - if _OPTIONS["with-opus"] then - filter {} - links { "libogg" } - links { "opus" } - links { "opusfile" } - end - - filter "platforms:*RW34*" - includedirs { "sdk/rwsdk/include/d3d8" } - libdirs { "sdk/rwsdk/lib/d3d8/release" } - links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtanim", "rtcharse", "rpanisot" } - defines { "RWLIBS" } - linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text" - - filter "platforms:*librw*" - defines { "LIBRW" } - files { addSrcFiles("src/fakerw") } - includedirs { "src/fakerw" } - includedirs { Librw } - if(_OPTIONS["with-librw"]) then - libdirs { "vendor/librw/lib/%{cfg.platform}/%{cfg.buildcfg}" } - end - links { "rw" } - - filter "platforms:*d3d9*" - defines { "USE_D3D9" } - links { "d3d9" } - - filter "platforms:*x86*d3d*" - includedirs { "sdk/dx8sdk/include" } - libdirs { "sdk/dx8sdk/lib" } - - filter "platforms:win-x86*gl3_glfw*" - libdirs { path.join(_OPTIONS["glewdir"], "lib/Release/Win32") } - libdirs { path.join(_OPTIONS["glfwdir32"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) } - links { "opengl32", "glew32s", "glfw3" } - - filter "platforms:win-amd64*gl3_glfw*" - libdirs { path.join(_OPTIONS["glewdir"], "lib/Release/x64") } - libdirs { path.join(_OPTIONS["glfwdir64"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) } - links { "opengl32", "glew32s", "glfw3" } - - filter "platforms:linux*gl3_glfw*" - links { "GL", "GLEW", "glfw" } - - filter "platforms:bsd*gl3_glfw*" - links { "GL", "GLEW", "glfw", "sysinfo" } - includedirs { "/usr/local/include" } - libdirs { "/usr/local/lib" } - - filter "platforms:macosx*gl3_glfw*" - links { "GLEW", "glfw" } - linkoptions { "-framework OpenGL" } - includedirs { "/opt/local/include" } - includedirs { "/usr/local/include" } - libdirs { "/opt/local/lib" } - libdirs { "/usr/local/lib" } +newoption { + trigger = "glewdir", + value = "PATH", + description = "Directory of GLEW", + default = "vendor/glew-2.1.0" +} + +newoption { + trigger = "glfwdir64", + value = "PATH", + description = "Directory of glfw", + default = "vendor/glfw-3.3.2.bin.WIN64", +} + +newoption { + trigger = "glfwdir32", + value = "PATH", + description = "Directory of glfw", + default = "vendor/glfw-3.3.2.bin.WIN32", +} + +newoption { + trigger = "with-asan", + description = "Build with address sanitizer" +} + +newoption { + trigger = "with-librw", + description = "Build and use librw from this solution" +} + +newoption { + trigger = "with-opus", + description = "Build with opus" +} + +newoption { + trigger = "lto", + description = "Use link time optimization" +} + +if(_OPTIONS["with-librw"]) then + Librw = "vendor/librw" +else + Librw = os.getenv("LIBRW") or "vendor/librw" +end + +function getsys(a) + if a == 'windows' then + return 'win' + end + return a +end + +function getarch(a) + if a == 'x86_64' then + return 'amd64' + elseif a == 'ARM' then + return 'arm' + elseif a == 'ARM64' then + return 'arm64' + end + return a +end + +workspace "reVC" + language "C++" + configurations { "Debug", "Release", "Vanilla" } + startproject "reVC" + location "build" + symbols "Full" + staticruntime "off" + + if _OPTIONS["with-asan"] then + buildoptions { "-fsanitize=address -g3 -fno-omit-frame-pointer" } + linkoptions { "-fsanitize=address" } + end + + filter { "system:windows" } + platforms { + "win-x86-RW34_d3d8-mss", + "win-x86-librw_d3d9-mss", + "win-x86-librw_gl3_glfw-mss", + "win-x86-RW34_d3d8-oal", + "win-x86-librw_d3d9-oal", + "win-x86-librw_gl3_glfw-oal", + "win-amd64-librw_d3d9-oal", + "win-amd64-librw_gl3_glfw-oal", + } + + filter { "system:linux" } + platforms { + "linux-x86-librw_gl3_glfw-oal", + "linux-amd64-librw_gl3_glfw-oal", + "linux-arm-librw_gl3_glfw-oal", + "linux-arm64-librw_gl3_glfw-oal", + } + + filter { "system:bsd" } + platforms { + "bsd-x86-librw_gl3_glfw-oal", + "bsd-amd64-librw_gl3_glfw-oal", + "bsd-arm-librw_gl3_glfw-oal", + "bsd-arm64-librw_gl3_glfw-oal" + } + + filter { "system:macosx" } + platforms { + "macosx-arm64-librw_gl3_glfw-oal", + "macosx-amd64-librw_gl3_glfw-oal", + } + + filter "configurations:Debug" + defines { "DEBUG" } + + filter "configurations:not Debug" + defines { "NDEBUG" } + optimize "Speed" + if(_OPTIONS["lto"]) then + flags { "LinkTimeOptimization" } + end + + filter "configurations:Vanilla" + defines { "VANILLA_DEFINES" } + + filter { "platforms:win*" } + system "windows" + + filter { "platforms:linux*" } + system "linux" + + filter { "platforms:bsd*" } + system "bsd" + + filter { "platforms:macosx*" } + system "macosx" + + filter { "platforms:*x86*" } + architecture "x86" + + filter { "platforms:*amd64*" } + architecture "amd64" + + filter { "platforms:*arm*" } + architecture "ARM" + + filter { "platforms:macosx-arm64-*" } + buildoptions { "-target", "arm64-apple-macos11", "-std=gnu++14" } + + filter { "platforms:macosx-amd64-*" } + buildoptions { "-target", "x86_64-apple-macos10.12", "-std=gnu++14" } + + filter { "platforms:*librw_d3d9*" } + defines { "RW_D3D9" } + if(not _OPTIONS["with-librw"]) then + libdirs { path.join(Librw, "lib/win-%{getarch(cfg.architecture)}-d3d9/%{cfg.buildcfg}") } + end + + filter "platforms:*librw_gl3_glfw*" + defines { "RW_GL3" } + includedirs { path.join(_OPTIONS["glewdir"], "include") } + if(not _OPTIONS["with-librw"]) then + libdirs { path.join(Librw, "lib/%{getsys(cfg.system)}-%{getarch(cfg.architecture)}-gl3/%{cfg.buildcfg}") } + end + + filter "platforms:*x86-librw_gl3_glfw*" + includedirs { path.join(_OPTIONS["glfwdir32"], "include") } + + filter "platforms:*amd64-librw_gl3_glfw*" + includedirs { path.join(_OPTIONS["glfwdir64"], "include") } + + filter "platforms:win*librw_gl3_glfw*" + defines { "GLEW_STATIC" } + + filter {} + + function setpaths (gamepath, exepath) + if (gamepath) then + postbuildcommands { + '{COPYFILE} "%{cfg.buildtarget.abspath}" "' .. gamepath .. '%{cfg.buildtarget.name}"' + } + debugdir (gamepath) + if (exepath) then + -- Used VS variable $(TargetFileName) because it doesn't accept premake tokens. Does debugcommand even work outside VS?? + debugcommand (gamepath .. "$(TargetFileName)") + dir, file = exepath:match'(.*/)(.*)' + debugdir (gamepath .. (dir or "")) + end + end + end + +if(_OPTIONS["with-librw"]) then +project "librw" + kind "StaticLib" + targetname "rw" + targetdir(path.join(Librw, "lib/%{cfg.platform}/%{cfg.buildcfg}")) + files { path.join(Librw, "src/*.*") } + files { path.join(Librw, "src/*/*.*") } + + filter { "platforms:*x86*" } + architecture "x86" + + filter { "platforms:*amd64*" } + architecture "amd64" + + filter "platforms:win*" + defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" } + staticruntime "on" + buildoptions { "/Zc:sizedDealloc-" } + + filter "platforms:bsd*" + includedirs { "/usr/local/include" } + libdirs { "/usr/local/lib" } + + filter "platforms:macosx*" + -- Support MacPorts and Homebrew + includedirs { "/opt/local/include" } + includedirs {"/usr/local/include" } + libdirs { "/opt/local/lib" } + libdirs { "/usr/local/lib" } + + filter "platforms:*gl3_glfw*" + staticruntime "off" + + filter "platforms:*RW34*" + flags { "ExcludeFromBuild" } + filter {} +end + +local function addSrcFiles( prefix ) + return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.rc" +end + +project "reVC" + kind "WindowedApp" + targetname "reVC" + targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}" + + if(_OPTIONS["with-librw"]) then + dependson "librw" + end + + files { addSrcFiles("src") } + files { addSrcFiles("src/animation") } + files { addSrcFiles("src/audio") } + files { addSrcFiles("src/audio/eax") } + files { addSrcFiles("src/audio/oal") } + files { addSrcFiles("src/buildings") } + files { addSrcFiles("src/collision") } + files { addSrcFiles("src/control") } + files { addSrcFiles("src/core") } + files { addSrcFiles("src/entities") } + files { addSrcFiles("src/math") } + files { addSrcFiles("src/modelinfo") } + files { addSrcFiles("src/objects") } + files { addSrcFiles("src/peds") } + files { addSrcFiles("src/render") } + files { addSrcFiles("src/rw") } + files { addSrcFiles("src/save") } + files { addSrcFiles("src/skel") } + files { addSrcFiles("src/skel/glfw") } + files { addSrcFiles("src/text") } + files { addSrcFiles("src/vehicles") } + files { addSrcFiles("src/weapons") } + files { addSrcFiles("src/extras") } + + includedirs { "src" } + includedirs { "src/animation" } + includedirs { "src/audio" } + includedirs { "src/audio/eax" } + includedirs { "src/audio/oal" } + includedirs { "src/buildings" } + includedirs { "src/collision" } + includedirs { "src/control" } + includedirs { "src/core" } + includedirs { "src/entities" } + includedirs { "src/math" } + includedirs { "src/modelinfo" } + includedirs { "src/objects" } + includedirs { "src/peds" } + includedirs { "src/render" } + includedirs { "src/rw" } + includedirs { "src/save/" } + includedirs { "src/skel/" } + includedirs { "src/skel/glfw" } + includedirs { "src/text" } + includedirs { "src/vehicles" } + includedirs { "src/weapons" } + includedirs { "src/extras" } + + if _OPTIONS["with-opus"] then + includedirs { "vendor/ogg/include" } + includedirs { "vendor/opus/include" } + includedirs { "vendor/opusfile/include" } + end + + filter "platforms:*mss" + defines { "AUDIO_MSS" } + includedirs { "vendor/milessdk/include" } + libdirs { "vendor/milessdk/lib" } + + if _OPTIONS["with-opus"] then + filter "platforms:win*" + libdirs { "vendor/ogg/win32/VS2015/Win32/%{cfg.buildcfg}" } + libdirs { "vendor/opus/win32/VS2015/Win32/%{cfg.buildcfg}" } + libdirs { "vendor/opusfile/win32/VS2015/Win32/Release-NoHTTP" } + filter {} + defines { "AUDIO_OPUS" } + end + + filter "platforms:*oal" + defines { "AUDIO_OAL" } + + filter {} + if(os.getenv("GTA_VC_RE_DIR")) then + setpaths(os.getenv("GTA_VC_RE_DIR") .. "/", "%(cfg.buildtarget.name)") + end + + filter "platforms:win*" + files { addSrcFiles("src/skel/win") } + includedirs { "src/skel/win" } + buildoptions { "/Zc:sizedDealloc-" } + linkoptions "/SAFESEH:NO" + characterset ("MBCS") + targetextension ".exe" + if(_OPTIONS["with-librw"]) then + -- external librw is dynamic + staticruntime "on" + end + prebuildcommands { '"%{prj.location}..\\printHash.bat" "%{prj.location}..\\src\\extras\\GitSHA1.cpp"' } + + filter "platforms:not win*" + prebuildcommands { '"%{prj.location}../printHash.sh" "%{prj.location}../src/extras/GitSHA1.cpp"' } + + filter "platforms:win*glfw*" + staticruntime "off" + + filter "platforms:win*oal" + includedirs { "vendor/openal-soft/include" } + includedirs { "vendor/libsndfile/include" } + includedirs { "vendor/mpg123/include" } + + filter "platforms:win-x86*oal" + libdirs { "vendor/mpg123/lib/Win32" } + libdirs { "vendor/libsndfile/lib/Win32" } + libdirs { "vendor/openal-soft/libs/Win32" } + + filter "platforms:win-amd64*oal" + libdirs { "vendor/mpg123/lib/Win64" } + libdirs { "vendor/libsndfile/lib/Win64" } + libdirs { "vendor/openal-soft/libs/Win64" } + + filter "platforms:linux*oal" + links { "openal", "mpg123", "sndfile", "pthread" } + + filter "platforms:bsd*oal" + links { "openal", "mpg123", "sndfile", "pthread" } + + filter "platforms:macosx*oal" + links { "openal", "mpg123", "sndfile", "pthread" } + includedirs { "/usr/local/opt/openal-soft/include" } + libdirs { "/usr/local/opt/openal-soft/lib" } + + if _OPTIONS["with-opus"] then + filter {} + links { "libogg" } + links { "opus" } + links { "opusfile" } + end + + filter "platforms:*RW34*" + includedirs { "sdk/rwsdk/include/d3d8" } + libdirs { "sdk/rwsdk/lib/d3d8/release" } + links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtanim", "rtcharse", "rpanisot" } + defines { "RWLIBS" } + linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text" + + filter "platforms:*librw*" + defines { "LIBRW" } + files { addSrcFiles("src/fakerw") } + includedirs { "src/fakerw" } + includedirs { Librw } + if(_OPTIONS["with-librw"]) then + libdirs { "vendor/librw/lib/%{cfg.platform}/%{cfg.buildcfg}" } + end + links { "rw" } + + filter "platforms:*d3d9*" + defines { "USE_D3D9" } + links { "d3d9" } + + filter "platforms:*x86*d3d*" + includedirs { "sdk/dx8sdk/include" } + libdirs { "sdk/dx8sdk/lib" } + + filter "platforms:win-x86*gl3_glfw*" + libdirs { path.join(_OPTIONS["glewdir"], "lib/Release/Win32") } + libdirs { path.join(_OPTIONS["glfwdir32"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) } + links { "opengl32", "glew32s", "glfw3" } + + filter "platforms:win-amd64*gl3_glfw*" + libdirs { path.join(_OPTIONS["glewdir"], "lib/Release/x64") } + libdirs { path.join(_OPTIONS["glfwdir64"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) } + links { "opengl32", "glew32s", "glfw3" } + + filter "platforms:linux*gl3_glfw*" + links { "GL", "GLEW", "glfw" } + + filter "platforms:bsd*gl3_glfw*" + links { "GL", "GLEW", "glfw", "sysinfo" } + includedirs { "/usr/local/include" } + libdirs { "/usr/local/lib" } + + filter "platforms:macosx*gl3_glfw*" + links { "GLEW", "glfw" } + linkoptions { "-framework OpenGL" } + includedirs { "/opt/local/include" } + includedirs { "/usr/local/include" } + libdirs { "/opt/local/lib" } + libdirs { "/usr/local/lib" } diff --git a/printHash.bat b/printHash.bat new file mode 100644 index 00000000..ef1cd9d6 --- /dev/null +++ b/printHash.bat @@ -0,0 +1,26 @@ +@echo off + +REM creates version.h with HEAD commit hash +REM params: $1=full path to output file (usually points version.h) + +setlocal enableextensions enabledelayedexpansion + +cd /d "%~dp0" + +break> %1 + + %1 + +where git +if "%errorlevel%" == "0" ( goto :havegit ) else ( goto :writeending ) + +:havegit +for /f %%v in ('git rev-parse --short HEAD') do set version=%%v +> %1 + +:writeending + +echo ^" >> %1 +echo const char* g_GIT_SHA1 = GIT_SHA1; >> %1 + +EXIT /B \ No newline at end of file diff --git a/printHash.sh b/printHash.sh new file mode 100644 index 00000000..7b4453a1 --- /dev/null +++ b/printHash.sh @@ -0,0 +1,14 @@ +#!/usr/bin/bash + +> $1 + +echo -n "#define GIT_SHA1 \"" > $1 + +git --version 2>&1 >/dev/null +GIT_IS_AVAILABLE=$? +if [ $GIT_IS_AVAILABLE -ne 0 ]; then +git rev-parse --short HEAD | tr -d '\n' >> $1 +fi + +echo "\"" >> $1 +echo "const char* g_GIT_SHA1 = GIT_SHA1;" >> $1 \ No newline at end of file diff --git a/src/core/config.h b/src/core/config.h index 4d2ad3bf..506df4c5 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -194,6 +194,10 @@ enum Config { // those infamous texts #define DRAW_GAME_VERSION_TEXT +#ifdef DRAW_GAME_VERSION_TEXT + #define TOGGLEABLE_VERSION_TEXT + #define USE_OUR_VERSIONING // If you disable this then game will fetch version peds.col, as R* did while in development +#endif // Memory allocation and compression // #define USE_CUSTOM_ALLOCATOR // use CMemoryHeap for allocation. use with care, not finished yet diff --git a/src/core/main.cpp b/src/core/main.cpp index bf0ce5fe..bb9bd296 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -75,6 +75,9 @@ #include "custompipes.h" #include "screendroplets.h" #include "VarConsole.h" +#ifdef USE_OUR_VERSIONING +#include "GitSHA1.h" +#endif GlobalScene Scene; @@ -91,6 +94,9 @@ bool gbModelViewer; #ifdef TIMEBARS bool gbShowTimebars; #endif +#ifdef TOGGLEABLE_VERSION_TEXT +bool gDrawVersionText; +#endif volatile int32 frameCount; @@ -1061,13 +1067,58 @@ DisplayGameDebugText() #ifdef DRAW_GAME_VERSION_TEXT wchar ver[200]; - + +#ifdef TOGGLEABLE_VERSION_TEXT + if(gDrawVersionText) +#endif + { + +#ifdef USE_OUR_VERSIONING + char verA[200]; + sprintf(verA, +#if defined _WIN32 + "Win " +#elif defined __linux__ + "Linux " +#elif defined __APPLE__ + "Mac OS X " +#elif defined __FreeBSD__ + "FreeBSD " +#else + "Posix-compliant " +#endif +#if defined __LP64__ || defined _WIN64 + "64-bit " +#else + "32-bit " +#endif +#if defined RW_D3D9 + "D3D9 " +#elif defined RWLIBS + "D3D8 " +#elif defined RW_GL3 + "OpenGL " +#endif +#if defined AUDIO_OAL + "OAL " +#elif defined AUDIO_MSS + "MSS " +#endif +#if defined _DEBUG || defined DEBUG + "DEBUG " +#endif + "%.8s", + g_GIT_SHA1); + AsciiToUnicode(verA, ver); + CFont::SetScale(SCREEN_SCALE_X(0.5f), SCREEN_SCALE_Y(0.7f)); +#else AsciiToUnicode(version_name, ver); + CFont::SetScale(SCREEN_SCALE_X(0.5f), SCREEN_SCALE_Y(0.5f)); +#endif CFont::SetPropOn(); CFont::SetBackgroundOff(); CFont::SetFontStyle(FONT_STANDARD); - CFont::SetScale(SCREEN_SCALE_X(0.5f), SCREEN_SCALE_Y(0.5f)); CFont::SetCentreOff(); CFont::SetRightJustifyOff(); CFont::SetWrapx(SCREEN_WIDTH); @@ -1076,6 +1127,8 @@ DisplayGameDebugText() CFont::SetColor(CRGBA(255, 108, 0, 255)); CFont::PrintString(SCREEN_SCALE_X(10.0f), SCREEN_SCALE_Y(10.0f), ver); #endif + } +#endif // #ifdef DRAW_GAME_VERSION_TEXT FrameSamples++; #ifdef FIX_HIGH_FPS_BUGS_ON_FRONTEND diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 779a7d13..9773b880 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -457,6 +457,10 @@ bool LoadINISettings() #ifdef FIX_SPRITES ReadIniIfExists("Draw", "FixSprites", &CDraw::ms_bFixSprites); #endif +#ifdef TOGGLEABLE_VERSION_TEXT + extern bool gDrawVersionText; + ReadIniIfExists("General", "DrawVersionText", &gDrawVersionText); +#endif #ifdef CUSTOM_FRONTEND_OPTIONS bool migrate = cfg.category_size("FrontendOptions") != 0; @@ -550,6 +554,10 @@ void SaveINISettings() #ifdef FIX_SPRITES StoreIni("Draw", "FixSprites", CDraw::ms_bFixSprites); #endif +#ifdef TOGGLEABLE_VERSION_TEXT + extern bool gDrawVersionText; + StoreIni("General", "DrawVersionText", gDrawVersionText); +#endif #ifdef CUSTOM_FRONTEND_OPTIONS for (int i = 0; i < MENUPAGES; i++) { for (int j = 0; j < NUM_MENUROWS; j++) { @@ -988,7 +996,11 @@ extern bool gbRenderWorld2; #ifdef FIX_SPRITES DebugMenuAddVarBool8("Draw", "Fix Sprites", &CDraw::ms_bFixSprites, nil); #endif - + +#ifdef TOGGLEABLE_VERSION_TEXT + extern bool gDrawVersionText; + DebugMenuAddVarBool8("Debug", "Version Text", &gDrawVersionText, nil); +#endif #ifndef FINAL DebugMenuAddVarBool8("Debug", "Print Memory Usage", &gbPrintMemoryUsage, nil); #ifdef USE_CUSTOM_ALLOCATOR diff --git a/src/extras/GitSHA1.cpp b/src/extras/GitSHA1.cpp new file mode 100644 index 00000000..3d1cd73e --- /dev/null +++ b/src/extras/GitSHA1.cpp @@ -0,0 +1,2 @@ +#define GIT_SHA1 "" +const char* g_GIT_SHA1 = GIT_SHA1; diff --git a/src/extras/GitSHA1.h b/src/extras/GitSHA1.h new file mode 100644 index 00000000..359bfaff --- /dev/null +++ b/src/extras/GitSHA1.h @@ -0,0 +1 @@ +extern const char* g_GIT_SHA1; \ No newline at end of file From 0c60ceeb33c06c17b35773ca4095c2d4c342a0dc Mon Sep 17 00:00:00 2001 From: Filip Gawin Date: Fri, 12 Feb 2021 02:04:31 +0100 Subject: [PATCH 084/113] Cmake version for hash --- CMakeLists.txt | 4 + cmake/GetGitRevisionDescription.cmake | 284 +++++++++++++++++++++++ cmake/GetGitRevisionDescription.cmake.in | 43 ++++ premake5.lua | 1 + src/CMakeLists.txt | 7 +- src/core/config.h | 4 +- src/core/main.cpp | 8 +- src/core/re3.cpp | 6 +- src/extras/GitSHA1.cpp | 2 - src/extras/GitSHA1.cpp.in | 2 + 10 files changed, 348 insertions(+), 13 deletions(-) create mode 100644 cmake/GetGitRevisionDescription.cmake create mode 100644 cmake/GetGitRevisionDescription.cmake.in delete mode 100644 src/extras/GitSHA1.cpp create mode 100644 src/extras/GitSHA1.cpp.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 7282135d..e8689b38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,10 @@ set(PROJECT REVC) project(${EXECUTABLE} C CXX) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") +include(GetGitRevisionDescription) +get_git_head_revision(GIT_REFSPEC GIT_SHA1 "ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR") +message(STATUS "Building ${CMAKE_PROJECT_NAME} GIT SHA1: ${GIT_SHA1}") + if(WIN32) set(${PROJECT}_AUDIOS "OAL" "MSS") else() diff --git a/cmake/GetGitRevisionDescription.cmake b/cmake/GetGitRevisionDescription.cmake new file mode 100644 index 00000000..87f691ad --- /dev/null +++ b/cmake/GetGitRevisionDescription.cmake @@ -0,0 +1,284 @@ +# - Returns a version string from Git +# +# These functions force a re-configure on each git commit so that you can +# trust the values of the variables in your build system. +# +# get_git_head_revision( [ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR]) +# +# Returns the refspec and sha hash of the current head revision +# +# git_describe( [ ...]) +# +# Returns the results of git describe on the source tree, and adjusting +# the output so that it tests false if an error occurs. +# +# git_describe_working_tree( [ ...]) +# +# Returns the results of git describe on the working tree (--dirty option), +# and adjusting the output so that it tests false if an error occurs. +# +# git_get_exact_tag( [ ...]) +# +# Returns the results of git describe --exact-match on the source tree, +# and adjusting the output so that it tests false if there was no exact +# matching tag. +# +# git_local_changes() +# +# Returns either "CLEAN" or "DIRTY" with respect to uncommitted changes. +# Uses the return code of "git diff-index --quiet HEAD --". +# Does not regard untracked files. +# +# Requires CMake 2.6 or newer (uses the 'function' command) +# +# Original Author: +# 2009-2020 Ryan Pavlik +# http://academic.cleardefinition.com +# +# Copyright 2009-2013, Iowa State University. +# Copyright 2013-2020, Ryan Pavlik +# Copyright 2013-2020, Contributors +# SPDX-License-Identifier: BSL-1.0 +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +if(__get_git_revision_description) + return() +endif() +set(__get_git_revision_description YES) + +# We must run the following at "include" time, not at function call time, +# to find the path to this module rather than the path to a calling list file +get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH) + +# Function _git_find_closest_git_dir finds the next closest .git directory +# that is part of any directory in the path defined by _start_dir. +# The result is returned in the parent scope variable whose name is passed +# as variable _git_dir_var. If no .git directory can be found, the +# function returns an empty string via _git_dir_var. +# +# Example: Given a path C:/bla/foo/bar and assuming C:/bla/.git exists and +# neither foo nor bar contain a file/directory .git. This wil return +# C:/bla/.git +# +function(_git_find_closest_git_dir _start_dir _git_dir_var) + set(cur_dir "${_start_dir}") + set(git_dir "${_start_dir}/.git") + while(NOT EXISTS "${git_dir}") + # .git dir not found, search parent directories + set(git_previous_parent "${cur_dir}") + get_filename_component(cur_dir ${cur_dir} DIRECTORY) + if(cur_dir STREQUAL git_previous_parent) + # We have reached the root directory, we are not in git + set(${_git_dir_var} + "" + PARENT_SCOPE) + return() + endif() + set(git_dir "${cur_dir}/.git") + endwhile() + set(${_git_dir_var} + "${git_dir}" + PARENT_SCOPE) +endfunction() + +function(get_git_head_revision _refspecvar _hashvar) + _git_find_closest_git_dir("${CMAKE_CURRENT_SOURCE_DIR}" GIT_DIR) + + if("${ARGN}" STREQUAL "ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR") + set(ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR TRUE) + else() + set(ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR FALSE) + endif() + if(NOT "${GIT_DIR}" STREQUAL "") + file(RELATIVE_PATH _relative_to_source_dir "${CMAKE_SOURCE_DIR}" + "${GIT_DIR}") + if("${_relative_to_source_dir}" MATCHES "[.][.]" AND NOT ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR) + # We've gone above the CMake root dir. + set(GIT_DIR "") + endif() + endif() + if("${GIT_DIR}" STREQUAL "") + set(${_refspecvar} + "GITDIR-NOTFOUND" + PARENT_SCOPE) + set(${_hashvar} + "GITDIR-NOTFOUND" + PARENT_SCOPE) + return() + endif() + + # Check if the current source dir is a git submodule or a worktree. + # In both cases .git is a file instead of a directory. + # + if(NOT IS_DIRECTORY ${GIT_DIR}) + # The following git command will return a non empty string that + # points to the super project working tree if the current + # source dir is inside a git submodule. + # Otherwise the command will return an empty string. + # + execute_process( + COMMAND "${GIT_EXECUTABLE}" rev-parse + --show-superproject-working-tree + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + OUTPUT_VARIABLE out + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + if(NOT "${out}" STREQUAL "") + # If out is empty, GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a submodule + file(READ ${GIT_DIR} submodule) + string(REGEX REPLACE "gitdir: (.*)$" "\\1" GIT_DIR_RELATIVE + ${submodule}) + string(STRIP ${GIT_DIR_RELATIVE} GIT_DIR_RELATIVE) + get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH) + get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} + ABSOLUTE) + set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD") + else() + # GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a worktree + file(READ ${GIT_DIR} worktree_ref) + # The .git directory contains a path to the worktree information directory + # inside the parent git repo of the worktree. + # + string(REGEX REPLACE "gitdir: (.*)$" "\\1" git_worktree_dir + ${worktree_ref}) + string(STRIP ${git_worktree_dir} git_worktree_dir) + _git_find_closest_git_dir("${git_worktree_dir}" GIT_DIR) + set(HEAD_SOURCE_FILE "${git_worktree_dir}/HEAD") + endif() + else() + set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD") + endif() + set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data") + if(NOT EXISTS "${GIT_DATA}") + file(MAKE_DIRECTORY "${GIT_DATA}") + endif() + + if(NOT EXISTS "${HEAD_SOURCE_FILE}") + return() + endif() + set(HEAD_FILE "${GIT_DATA}/HEAD") + configure_file("${HEAD_SOURCE_FILE}" "${HEAD_FILE}" COPYONLY) + + configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" + "${GIT_DATA}/grabRef.cmake" @ONLY) + include("${GIT_DATA}/grabRef.cmake") + + set(${_refspecvar} + "${HEAD_REF}" + PARENT_SCOPE) + set(${_hashvar} + "${HEAD_HASH}" + PARENT_SCOPE) +endfunction() + +function(git_describe _var) + if(NOT GIT_FOUND) + find_package(Git QUIET) + endif() + get_git_head_revision(refspec hash) + if(NOT GIT_FOUND) + set(${_var} + "GIT-NOTFOUND" + PARENT_SCOPE) + return() + endif() + if(NOT hash) + set(${_var} + "HEAD-HASH-NOTFOUND" + PARENT_SCOPE) + return() + endif() + + # TODO sanitize + #if((${ARGN}" MATCHES "&&") OR + # (ARGN MATCHES "||") OR + # (ARGN MATCHES "\\;")) + # message("Please report the following error to the project!") + # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}") + #endif() + + #message(STATUS "Arguments to execute_process: ${ARGN}") + + execute_process( + COMMAND "${GIT_EXECUTABLE}" describe --tags --always ${hash} ${ARGN} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE res + OUTPUT_VARIABLE out + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + if(NOT res EQUAL 0) + set(out "${out}-${res}-NOTFOUND") + endif() + + set(${_var} + "${out}" + PARENT_SCOPE) +endfunction() + +function(git_describe_working_tree _var) + if(NOT GIT_FOUND) + find_package(Git QUIET) + endif() + if(NOT GIT_FOUND) + set(${_var} + "GIT-NOTFOUND" + PARENT_SCOPE) + return() + endif() + + execute_process( + COMMAND "${GIT_EXECUTABLE}" describe --dirty ${ARGN} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE res + OUTPUT_VARIABLE out + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + if(NOT res EQUAL 0) + set(out "${out}-${res}-NOTFOUND") + endif() + + set(${_var} + "${out}" + PARENT_SCOPE) +endfunction() + +function(git_get_exact_tag _var) + git_describe(out --exact-match ${ARGN}) + set(${_var} + "${out}" + PARENT_SCOPE) +endfunction() + +function(git_local_changes _var) + if(NOT GIT_FOUND) + find_package(Git QUIET) + endif() + get_git_head_revision(refspec hash) + if(NOT GIT_FOUND) + set(${_var} + "GIT-NOTFOUND" + PARENT_SCOPE) + return() + endif() + if(NOT hash) + set(${_var} + "HEAD-HASH-NOTFOUND" + PARENT_SCOPE) + return() + endif() + + execute_process( + COMMAND "${GIT_EXECUTABLE}" diff-index --quiet HEAD -- + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE res + OUTPUT_VARIABLE out + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + if(res EQUAL 0) + set(${_var} + "CLEAN" + PARENT_SCOPE) + else() + set(${_var} + "DIRTY" + PARENT_SCOPE) + endif() +endfunction() diff --git a/cmake/GetGitRevisionDescription.cmake.in b/cmake/GetGitRevisionDescription.cmake.in new file mode 100644 index 00000000..116efc4e --- /dev/null +++ b/cmake/GetGitRevisionDescription.cmake.in @@ -0,0 +1,43 @@ +# +# Internal file for GetGitRevisionDescription.cmake +# +# Requires CMake 2.6 or newer (uses the 'function' command) +# +# Original Author: +# 2009-2010 Ryan Pavlik +# http://academic.cleardefinition.com +# Iowa State University HCI Graduate Program/VRAC +# +# Copyright 2009-2012, Iowa State University +# Copyright 2011-2015, Contributors +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) +# SPDX-License-Identifier: BSL-1.0 + +set(HEAD_HASH) + +file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024) + +string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS) +if(HEAD_CONTENTS MATCHES "ref") + # named branch + string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}") + if(EXISTS "@GIT_DIR@/${HEAD_REF}") + configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) + else() + configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY) + file(READ "@GIT_DATA@/packed-refs" PACKED_REFS) + if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}") + set(HEAD_HASH "${CMAKE_MATCH_1}") + endif() + endif() +else() + # detached HEAD + configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY) +endif() + +if(NOT HEAD_HASH) + file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024) + string(STRIP "${HEAD_HASH}" HEAD_HASH) +endif() diff --git a/premake5.lua b/premake5.lua index d6d139dd..98c3788f 100644 --- a/premake5.lua +++ b/premake5.lua @@ -263,6 +263,7 @@ project "reVC" files { addSrcFiles("src/vehicles") } files { addSrcFiles("src/weapons") } files { addSrcFiles("src/extras") } + files { "src/extras/GitSHA1.cpp" } -- this won't be in repo in first build includedirs { "src" } includedirs { "src/animation" } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f3d51b06..6c8ab281 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,5 @@ -set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) +set(THREADS_PREFER_PTHREAD_FLAG ON) file(GLOB_RECURSE ${PROJECT}_SOURCES "*.cpp" "*.h" "*.rc") @@ -17,6 +17,9 @@ endfunction() header_directories(${PROJECT}_INCLUDES) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/extras/GitSHA1.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/extras/GitSHA1.cpp" @ONLY) +list(APPEND ${PROJECT}_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/extras/GitSHA1.cpp") + add_executable(${EXECUTABLE} WIN32 ${${PROJECT}_SOURCES} ) @@ -46,6 +49,8 @@ if(LIBRW_PLATFORM_D3D9) ) endif() +target_compile_definitions(${EXECUTABLE} PRIVATE CMAKE_BUILD) + if(${PROJECT}_AUDIO STREQUAL "OAL") find_package(OpenAL REQUIRED) target_include_directories(${EXECUTABLE} PRIVATE ${OPENAL_INCLUDE_DIR}) diff --git a/src/core/config.h b/src/core/config.h index 506df4c5..71316439 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -195,8 +195,8 @@ enum Config { // those infamous texts #define DRAW_GAME_VERSION_TEXT #ifdef DRAW_GAME_VERSION_TEXT - #define TOGGLEABLE_VERSION_TEXT - #define USE_OUR_VERSIONING // If you disable this then game will fetch version peds.col, as R* did while in development + // unlike R* development builds, ours has runtime switch on debug menu & .ini, and disabled as default. + #define USE_OUR_VERSIONING // If you disable this then game will fetch version from peds.col, as R* did while in development #endif // Memory allocation and compression diff --git a/src/core/main.cpp b/src/core/main.cpp index bb9bd296..52988afc 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -94,8 +94,8 @@ bool gbModelViewer; #ifdef TIMEBARS bool gbShowTimebars; #endif -#ifdef TOGGLEABLE_VERSION_TEXT -bool gDrawVersionText; +#ifdef DRAW_GAME_VERSION_TEXT +bool gDrawVersionText; // Our addition, we think it was always enabled on !MASTER builds #endif volatile int32 frameCount; @@ -1068,9 +1068,7 @@ DisplayGameDebugText() #ifdef DRAW_GAME_VERSION_TEXT wchar ver[200]; -#ifdef TOGGLEABLE_VERSION_TEXT - if(gDrawVersionText) -#endif + if(gDrawVersionText) // This realtime switch is our thing { #ifdef USE_OUR_VERSIONING diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 9773b880..06789e4a 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -457,7 +457,7 @@ bool LoadINISettings() #ifdef FIX_SPRITES ReadIniIfExists("Draw", "FixSprites", &CDraw::ms_bFixSprites); #endif -#ifdef TOGGLEABLE_VERSION_TEXT +#ifdef DRAW_GAME_VERSION_TEXT extern bool gDrawVersionText; ReadIniIfExists("General", "DrawVersionText", &gDrawVersionText); #endif @@ -554,7 +554,7 @@ void SaveINISettings() #ifdef FIX_SPRITES StoreIni("Draw", "FixSprites", CDraw::ms_bFixSprites); #endif -#ifdef TOGGLEABLE_VERSION_TEXT +#ifdef DRAW_GAME_VERSION_TEXT extern bool gDrawVersionText; StoreIni("General", "DrawVersionText", gDrawVersionText); #endif @@ -997,7 +997,7 @@ extern bool gbRenderWorld2; DebugMenuAddVarBool8("Draw", "Fix Sprites", &CDraw::ms_bFixSprites, nil); #endif -#ifdef TOGGLEABLE_VERSION_TEXT +#ifdef DRAW_GAME_VERSION_TEXT extern bool gDrawVersionText; DebugMenuAddVarBool8("Debug", "Version Text", &gDrawVersionText, nil); #endif diff --git a/src/extras/GitSHA1.cpp b/src/extras/GitSHA1.cpp deleted file mode 100644 index 3d1cd73e..00000000 --- a/src/extras/GitSHA1.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#define GIT_SHA1 "" -const char* g_GIT_SHA1 = GIT_SHA1; diff --git a/src/extras/GitSHA1.cpp.in b/src/extras/GitSHA1.cpp.in new file mode 100644 index 00000000..6168dc79 --- /dev/null +++ b/src/extras/GitSHA1.cpp.in @@ -0,0 +1,2 @@ +#define GIT_SHA1 "@GIT_SHA1@" +const char* g_GIT_SHA1 = GIT_SHA1; From 80e4b3db55870f4b1947a757843a96909e300206 Mon Sep 17 00:00:00 2001 From: erorcun Date: Fri, 12 Feb 2021 17:23:29 +0300 Subject: [PATCH 085/113] Fix sha1 on premake linux --- premake5.lua | 2 +- printHash.sh | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) mode change 100644 => 100755 printHash.sh diff --git a/premake5.lua b/premake5.lua index 98c3788f..319e689a 100644 --- a/premake5.lua +++ b/premake5.lua @@ -331,7 +331,7 @@ project "reVC" prebuildcommands { '"%{prj.location}..\\printHash.bat" "%{prj.location}..\\src\\extras\\GitSHA1.cpp"' } filter "platforms:not win*" - prebuildcommands { '"%{prj.location}../printHash.sh" "%{prj.location}../src/extras/GitSHA1.cpp"' } + prebuildcommands { '"%{prj.location}/../printHash.sh" "%{prj.location}/../src/extras/GitSHA1.cpp"' } filter "platforms:win*glfw*" staticruntime "off" diff --git a/printHash.sh b/printHash.sh old mode 100644 new mode 100755 index 7b4453a1..71f54466 --- a/printHash.sh +++ b/printHash.sh @@ -1,12 +1,10 @@ -#!/usr/bin/bash +#!/bin/bash > $1 echo -n "#define GIT_SHA1 \"" > $1 -git --version 2>&1 >/dev/null -GIT_IS_AVAILABLE=$? -if [ $GIT_IS_AVAILABLE -ne 0 ]; then +if (command -v "git" >/dev/null) then git rev-parse --short HEAD | tr -d '\n' >> $1 fi From 0ec16a5b0ecb85808553141c2657c957fc585dc9 Mon Sep 17 00:00:00 2001 From: erorcun Date: Fri, 12 Feb 2021 19:50:26 +0300 Subject: [PATCH 086/113] Fix XInput hotplug --- src/core/MenuScreensCustom.cpp | 7 ++----- src/core/re3.cpp | 8 ++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index a5dbd0d5..cdfb3c85 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -351,11 +351,8 @@ wchar* DetectJoystickDraw(bool* disabled, bool userHovering) { } } if (found != -1 && CPad::XInputJoy1 != found) { - if (CPad::XInputJoy1 != -1 && CPad::XInputJoy1 != found) - CPad::XInputJoy2 = CPad::XInputJoy1; - else - CPad::XInputJoy2 = -1; - + // We should never leave pads -1, so we can process them when they're connected and kinda support hotplug. + CPad::XInputJoy2 = (CPad::XInputJoy1 == -1 ? (found + 1) % 4 : CPad::XInputJoy1); CPad::XInputJoy1 = found; cachedButtonNum = 0; // fake too, because xinput bypass CControllerConfig } diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 06789e4a..bd9a46df 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -279,6 +279,14 @@ void LoadINIControllerSettings() CPad::XInputJoy2 = i; } } + + // There is no plug event on XInput, so let's leave XInputJoy1/2 as 0/1 respectively, and hotplug will be possible. + if (CPad::XInputJoy1 == -1) { + CPad::XInputJoy1 = 0; + CPad::XInputJoy2 = 1; + } else if (CPad::XInputJoy2 == -1) { + CPad::XInputJoy2 = (CPad::XInputJoy1 + 1) % 4; + } } #else ReadIniIfExists("Controller", "JoystickName", gSelectedJoystickName, 128); From 035f0010d8d526ae4a5cd2254bd55e1486fca4f2 Mon Sep 17 00:00:00 2001 From: erorcun Date: Fri, 12 Feb 2021 21:26:03 +0300 Subject: [PATCH 087/113] fix --- src/core/main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core/main.cpp b/src/core/main.cpp index 52988afc..3ab97450 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -1124,7 +1124,6 @@ DisplayGameDebugText() CFont::SetBackGroundOnlyTextOff(); CFont::SetColor(CRGBA(255, 108, 0, 255)); CFont::PrintString(SCREEN_SCALE_X(10.0f), SCREEN_SCALE_Y(10.0f), ver); -#endif } #endif // #ifdef DRAW_GAME_VERSION_TEXT From 0916971584c13c38109428a81d1f0727063a5d55 Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 12 Feb 2021 20:12:48 +0100 Subject: [PATCH 088/113] update librw --- vendor/librw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/librw b/vendor/librw index 4c77fb57..41ae7b9b 160000 --- a/vendor/librw +++ b/vendor/librw @@ -1 +1 @@ -Subproject commit 4c77fb57546e89da1e6f3bad3c582848de9f5c93 +Subproject commit 41ae7b9b61c6736b34269df0f0350d1b5bcff4df From 9df19cbac34d69295a6d4e3b9d1e911b039eb8fa Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 12 Feb 2021 21:08:55 +0100 Subject: [PATCH 089/113] license information --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 74eb2fa7..f27f0784 100644 --- a/README.md +++ b/README.md @@ -140,5 +140,7 @@ Do not use features from C++11 or later. ## License -We don't feel like we're in a position to give this code a license. -If we were, it would be MIT licensed. +We don't feel like we're in a position to give this code a license.\ +The code should only be used for educational, documentation and modding purposes.\ +We do not encourage piracy or commercial use.\ +Please keep derivate work open source and give proper credit. \ No newline at end of file From 3db0e827e5d5dfa442386e18a4240f5a7f8ff6eb Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 12 Feb 2021 21:52:51 +0100 Subject: [PATCH 090/113] add history section to readme --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/README.md b/README.md index f27f0784..59530f36 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,35 @@ We have a [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_ST Do not use features from C++11 or later. +## History + +re3 was started sometime in the spring of 2018, +initially as a way to test reversed collision and physics code +inside the game. +This was done by replacing single functions of the game +with their reversed counterparts using a dll. + +After a bit of work then project lay dormant for about a year +and was picked up again and pushed to github in May 2019. +At the time I had reversed around 10k lines of code and estimated +the final game to have around 200-250k. +Others quickly joined the effort and we made very quick progress +throughout the summer of 2019 +after which the pace slowed down a bit. + +Due to everyone staying home during the start of the Corona pandemic +everybody had much time to work on re3 again and +we finally got a standalone exe in April 2020 (around 180k lines by then). + +After the initial excitement and fixing and polishing the code more +reVC was started in early May 2020 by starting from re3 code, +not by starting from scratch replacing functions with a dll. +After a few months of mostly steady progress we considered reVC +finished in December. + +Since then we have started LCS, which is currently work in progress. + + ## License We don't feel like we're in a position to give this code a license.\ From 65f9917b651fa8b44a90899a6cc1fa650f053ab1 Mon Sep 17 00:00:00 2001 From: aap Date: Sat, 13 Feb 2021 14:22:34 +0100 Subject: [PATCH 091/113] clean up debug menu --- src/core/main.cpp | 2 +- src/core/re3.cpp | 113 ++++++++++++++++++----------------------- src/render/Shadows.cpp | 4 +- 3 files changed, 53 insertions(+), 66 deletions(-) diff --git a/src/core/main.cpp b/src/core/main.cpp index 3ab97450..f6d27bd9 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -1053,7 +1053,7 @@ DisplayGameDebugText() #ifndef FINAL { - SETTWEAKPATH("GameDebugText"); + SETTWEAKPATH("Debug"); TWEAKBOOL(bDisplayPosn); TWEAKBOOL(bDisplayCheatStr); } diff --git a/src/core/re3.cpp b/src/core/re3.cpp index bd9a46df..94004a84 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -694,18 +694,6 @@ SwitchCarCollision(void) FindPlayerVehicle()->bUsesCollision = !FindPlayerVehicle()->bUsesCollision; } -static int engineStatus; -static void -SetEngineStatus(void) -{ - CVehicle *veh = FindPlayerVehicle(); - if(veh == nil) - return; - if(!veh->IsCar()) - return; - ((CAutomobile*)veh)->Damage.SetEngineStatus(engineStatus); -} - static void ToggleComedy(void) { @@ -928,13 +916,22 @@ DebugMenuPopulate(void) DebugMenuAddCmd("Spawn", "Spawn Skimmer", [](){ SpawnCar(MI_SKIMMER); }); DebugMenuAddVarBool8("Render", "Draw hud", &CHud::m_Wants_To_Draw_Hud, nil); +#ifdef PROPER_SCALING + DebugMenuAddVarBool8("Render", "Proper Scaling", &CDraw::ms_bProperScaling, nil); +#endif +#ifdef FIX_RADAR + DebugMenuAddVarBool8("Render", "Fix Radar", &CDraw::ms_bFixRadar, nil); +#endif +#ifdef FIX_SPRITES + DebugMenuAddVarBool8("Render", "Fix Sprites", &CDraw::ms_bFixSprites, nil); +#endif DebugMenuAddVarBool8("Render", "Backface Culling", &gBackfaceCulling, nil); DebugMenuAddVarBool8("Render", "PS2 Alpha test Emu", &gPS2alphaTest, nil); DebugMenuAddVarBool8("Render", "Frame limiter", &FrontEndMenuManager.m_PrefsFrameLimiter, nil); DebugMenuAddVarBool8("Render", "VSynch", &FrontEndMenuManager.m_PrefsVsync, nil); DebugMenuAddVar("Render", "Max FPS", &RsGlobal.maxFPS, nil, 1, 1, 1000, nil); #ifdef NEW_RENDERER - DebugMenuAddVarBool8("Render", "new renderer", &gbNewRenderer, nil); + DebugMenuAddVarBool8("Render", "New Renderer", &gbNewRenderer, nil); extern bool gbRenderRoads; extern bool gbRenderEverythingBarRoads; extern bool gbRenderFadingInUnderwaterEntities; @@ -945,16 +942,16 @@ extern bool gbRenderVehicles; extern bool gbRenderWorld0; extern bool gbRenderWorld1; extern bool gbRenderWorld2; - DebugMenuAddVarBool8("Render", "gbRenderRoads", &gbRenderRoads, nil); - DebugMenuAddVarBool8("Render", "gbRenderEverythingBarRoads", &gbRenderEverythingBarRoads, nil); - DebugMenuAddVarBool8("Render", "gbRenderFadingInUnderwaterEntities", &gbRenderFadingInUnderwaterEntities, nil); - DebugMenuAddVarBool8("Render", "gbRenderFadingInEntities", &gbRenderFadingInEntities, nil); - DebugMenuAddVarBool8("Render", "gbRenderWater", &gbRenderWater, nil); - DebugMenuAddVarBool8("Render", "gbRenderBoats", &gbRenderBoats, nil); - DebugMenuAddVarBool8("Render", "gbRenderVehicles", &gbRenderVehicles, nil); - DebugMenuAddVarBool8("Render", "gbRenderWorld0", &gbRenderWorld0, nil); - DebugMenuAddVarBool8("Render", "gbRenderWorld1", &gbRenderWorld1, nil); - DebugMenuAddVarBool8("Render", "gbRenderWorld2", &gbRenderWorld2, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderRoads", &gbRenderRoads, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderEverythingBarRoads", &gbRenderEverythingBarRoads, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderFadingInUnderwaterEntities", &gbRenderFadingInUnderwaterEntities, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderFadingInEntities", &gbRenderFadingInEntities, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderWater", &gbRenderWater, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderBoats", &gbRenderBoats, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderVehicles", &gbRenderVehicles, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderWorld0", &gbRenderWorld0, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderWorld1", &gbRenderWorld1, nil); + DebugMenuAddVarBool8("Debug Render", "gbRenderWorld2", &gbRenderWorld2, nil); #endif #ifdef EXTENDED_COLOURFILTER @@ -983,31 +980,26 @@ extern bool gbRenderWorld2; DebugMenuAddVarBool8("Render", "Neo Road Gloss enable", &CustomPipes::GlossEnable, nil); DebugMenuAddVar("Render", "Mult", &CustomPipes::GlossMult, nil, 0.1f, 0, 1.0f); #endif - DebugMenuAddVarBool8("Render", "Show Ped Paths", &gbShowPedPaths, nil); - DebugMenuAddVarBool8("Render", "Show Car Paths", &gbShowCarPaths, nil); - DebugMenuAddVarBool8("Render", "Show Car Path Links", &gbShowCarPathsLinks, nil); - DebugMenuAddVarBool8("Render", "Show Collision Lines", &gbShowCollisionLines, nil); - DebugMenuAddVarBool8("Render", "Show Collision Polys", &gbShowCollisionPolys, nil); - DebugMenuAddVarBool8("Render", "Don't render Buildings", &gbDontRenderBuildings, nil); - DebugMenuAddVarBool8("Render", "Don't render Big Buildings", &gbDontRenderBigBuildings, nil); - DebugMenuAddVarBool8("Render", "Don't render Peds", &gbDontRenderPeds, nil); - DebugMenuAddVarBool8("Render", "Don't render Vehicles", &gbDontRenderVehicles, nil); - DebugMenuAddVarBool8("Render", "Don't render Objects", &gbDontRenderObjects, nil); - DebugMenuAddVarBool8("Render", "Don't Render Water", &gbDontRenderWater, nil); + DebugMenuAddVarBool8("Debug Render", "Show Ped Paths", &gbShowPedPaths, nil); + DebugMenuAddVarBool8("Debug Render", "Show Car Paths", &gbShowCarPaths, nil); + DebugMenuAddVarBool8("Debug Render", "Show Car Path Links", &gbShowCarPathsLinks, nil); + DebugMenuAddVarBool8("Debug Render", "Show Collision Lines", &gbShowCollisionLines, nil); + DebugMenuAddVarBool8("Debug Render", "Show Collision Polys", &gbShowCollisionPolys, nil); + DebugMenuAddVarBool8("Debug Render", "Don't render Buildings", &gbDontRenderBuildings, nil); + DebugMenuAddVarBool8("Debug Render", "Don't render Big Buildings", &gbDontRenderBigBuildings, nil); + DebugMenuAddVarBool8("Debug Render", "Don't render Peds", &gbDontRenderPeds, nil); + DebugMenuAddVarBool8("Debug Render", "Don't render Vehicles", &gbDontRenderVehicles, nil); + DebugMenuAddVarBool8("Debug Render", "Don't render Objects", &gbDontRenderObjects, nil); + DebugMenuAddVarBool8("Debug Render", "Don't Render Water", &gbDontRenderWater, nil); -#ifdef PROPER_SCALING - DebugMenuAddVarBool8("Draw", "Proper Scaling", &CDraw::ms_bProperScaling, nil); -#endif -#ifdef FIX_RADAR - DebugMenuAddVarBool8("Draw", "Fix Radar", &CDraw::ms_bFixRadar, nil); -#endif -#ifdef FIX_SPRITES - DebugMenuAddVarBool8("Draw", "Fix Sprites", &CDraw::ms_bFixSprites, nil); -#endif #ifdef DRAW_GAME_VERSION_TEXT extern bool gDrawVersionText; DebugMenuAddVarBool8("Debug", "Version Text", &gDrawVersionText, nil); +#endif + DebugMenuAddVarBool8("Debug", "Show DebugStuffInRelease", &gbDebugStuffInRelease, nil); +#ifdef TIMEBARS + DebugMenuAddVarBool8("Debug", "Show Timebars", &gbShowTimebars, nil); #endif #ifndef FINAL DebugMenuAddVarBool8("Debug", "Print Memory Usage", &gbPrintMemoryUsage, nil); @@ -1020,28 +1012,23 @@ extern bool gbRenderWorld2; #ifdef GTA_SCENE_EDIT DebugMenuAddVarBool8("Debug", "Edit on", &CSceneEdit::m_bEditOn, nil); #endif -#ifdef MAP_ENHANCEMENTS - DebugMenuAddCmd("Debug", "Teleport to map waypoint", TeleportToWaypoint); -#endif - DebugMenuAddCmd("Debug", "Switch car collision", SwitchCarCollision); - DebugMenuAddVar("Debug", "Engine Status", &engineStatus, nil, 1, 0, 226, nil); - DebugMenuAddCmd("Debug", "Set Engine Status", SetEngineStatus); - DebugMenuAddCmd("Debug", "Fix Car", FixCar); - DebugMenuAddCmd("Debug", "Toggle Comedy Controls", ToggleComedy); - DebugMenuAddCmd("Debug", "Place Car on Road", PlaceOnRoad); - - DebugMenuAddVarBool8("Debug", "Script Heli On", &CHeli::ScriptHeliOn, nil); - - DebugMenuAddCmd("Debug", "Start Credits", CCredits::Start); - DebugMenuAddCmd("Debug", "Stop Credits", CCredits::Stop); + //DebugMenuAddCmd("Debug", "Start Credits", CCredits::Start); + //DebugMenuAddCmd("Debug", "Stop Credits", CCredits::Stop); #ifdef RELOADABLES - DebugMenuAddCmd("Reload", "HUD.TXD", CHud::ReloadTXD); +// maybe put it back if we have more to reload +// DebugMenuAddCmd("Reload", "HUD.TXD", CHud::ReloadTXD); #endif - DebugMenuAddVarBool8("Debug", "Show DebugStuffInRelease", &gbDebugStuffInRelease, nil); -#ifdef TIMEBARS - DebugMenuAddVarBool8("Debug", "Show Timebars", &gbShowTimebars, nil); + +#ifdef MAP_ENHANCEMENTS + DebugMenuAddCmd("Game", "Teleport to map waypoint", TeleportToWaypoint); #endif + DebugMenuAddCmd("Game", "Fix Car", FixCar); + DebugMenuAddCmd("Game", "Place Car on Road", PlaceOnRoad); + DebugMenuAddCmd("Game", "Switch car collision", SwitchCarCollision); + DebugMenuAddCmd("Game", "Toggle Comedy Controls", ToggleComedy); + + #ifdef MISSION_SWITCHER DebugMenuEntry *missionEntry; static const char* missions[] = { @@ -1065,9 +1052,9 @@ extern bool gbRenderWorld2; "PIZZA BOY", "RC Raider Pickup", "RC Bandit Race", "RC Baron Race", "Checkpoint Charlie" }; - missionEntry = DebugMenuAddVar("Debug", "Select mission", &nextMissionToSwitch, nil, 1, 0, ARRAY_SIZE(missions) - 1, missions); + missionEntry = DebugMenuAddVar("Game", "Select mission", &nextMissionToSwitch, nil, 1, 0, ARRAY_SIZE(missions) - 1, missions); DebugMenuEntrySetWrap(missionEntry, true); - DebugMenuAddCmd("Debug", "Start selected mission ", SwitchToMission); + DebugMenuAddCmd("Game", "Start selected mission ", SwitchToMission); #endif extern bool PrintDebugCode; extern int16 DebugCamMode; diff --git a/src/render/Shadows.cpp b/src/render/Shadows.cpp index 2b1df555..91f53acf 100644 --- a/src/render/Shadows.cpp +++ b/src/render/Shadows.cpp @@ -28,8 +28,8 @@ #include "VarConsole.h" #ifdef DEBUGMENU -SETTWEAKPATH("Shadows"); -TWEAKBOOL(gbPrintShite); +//SETTWEAKPATH("Shadows"); +//TWEAKBOOL(gbPrintShite); #endif RwImVertexIndex ShadowIndexList[24]; From 333530e260cddef8c9135446d210090ff70d5b3b Mon Sep 17 00:00:00 2001 From: aap Date: Sat, 13 Feb 2021 14:54:51 +0100 Subject: [PATCH 092/113] new icon --- src/skel/win/gtavc.ico | Bin 3262 -> 81817 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/skel/win/gtavc.ico b/src/skel/win/gtavc.ico index d253ff2c361eb9b280ec88c8c575a1b5b43fbfbd..7bfcc5a5751ad1bedab31b8c5a771a15bdccf065 100644 GIT binary patch literal 81817 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 From ddcc19d7cf4b5a76fadc224966a0fa074b142592 Mon Sep 17 00:00:00 2001 From: withmorten Date: Sat, 13 Feb 2021 15:00:14 +0100 Subject: [PATCH 093/113] readme fixes --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 59530f36..7424f740 100644 --- a/README.md +++ b/README.md @@ -146,16 +146,16 @@ inside the game. This was done by replacing single functions of the game with their reversed counterparts using a dll. -After a bit of work then project lay dormant for about a year +After a bit of work the project lay dormant for about a year and was picked up again and pushed to github in May 2019. -At the time I had reversed around 10k lines of code and estimated +At the time I (aap) had reversed around 10k lines of code and estimated the final game to have around 200-250k. Others quickly joined the effort and we made very quick progress throughout the summer of 2019 after which the pace slowed down a bit. Due to everyone staying home during the start of the Corona pandemic -everybody had much time to work on re3 again and +everybody had a lot of time to work on re3 again and we finally got a standalone exe in April 2020 (around 180k lines by then). After the initial excitement and fixing and polishing the code more @@ -172,4 +172,4 @@ Since then we have started LCS, which is currently work in progress. We don't feel like we're in a position to give this code a license.\ The code should only be used for educational, documentation and modding purposes.\ We do not encourage piracy or commercial use.\ -Please keep derivate work open source and give proper credit. \ No newline at end of file +Please keep derivate work open source and give proper credit. From ae8b2198e20d00104f8e989d5ab164f3068ffa53 Mon Sep 17 00:00:00 2001 From: IlDucci Date: Sat, 13 Feb 2021 16:50:28 +0100 Subject: [PATCH 094/113] Redone the entire grouping to follow the textures, added ifdefs, added a small legend for the Pricedown characters in EFIGS font1 --- src/render/Font.cpp | 100 +++++++++++++++++++++++++++++++++----------- 1 file changed, 76 insertions(+), 24 deletions(-) diff --git a/src/render/Font.cpp b/src/render/Font.cpp index 86fe4a56..857c75f7 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -65,33 +65,85 @@ int16 CFont::Size[MAX_FONTS][210] = { #endif { //FONT2 EFIGS - //SPC,!, $, %, &, ', [, ], +, , -, ., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ??, A, B, - 12, 9, 22, 17, 19, 19, 25, 4, 33, 33, 25, 35, 11, 10, 6, 33, 18, 10, 17, 17, 17, 17, 17, 15, 12, 16, 5, 30, 30, 30, 30, 30, 12, 16, 19, - //C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, ??, ??, ??, ¡, \, ??, a, b, c, d, e, - 16, 19, 18, 18, 17, 22, 11, 17, 18, 18, 30, 22, 19, 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 10, 19, 12, 14, 11, 11, 16, 11, - //f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ??, ??, ??, ??, ??, À, Á, Â, Ä, Æ, Ç, È, É, Ê, - 12, 14, 14, 10, 13, 12, 10, 19, 18, 12, 16, 13, 13, 11, 12, 15, 12, 15, 13, 12, 12, 37, 33, 37, 35, 37, 16, 16, 16, 16, 33, 17, 18, 18, 18, - //Ë, Ì, Í, Î, Ï, Ò, Ó, Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, - 18, 11, 11, 11, 11, 19, 19, 19, 19, 19, 19, 19, 19, 15, 14, 14, 14, 14, 20, 14, 11, 11, 11, 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, - //ü, Ñ, ñ, ¿, i, BLANKS - 15, 22, 18, 21, 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - // ??, ?? - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 16 + //SPC,!, $, %, &, ', [, ], +, , -, ., + 12, 9, 22, 17, 19, 19, 25, 4, 33, 33, 25, 35, 11, 10, 6, 33, + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ??, + 18, 10, 17, 17, 17, 17, 17, 15, 12, 16, 5, 30, 30, 30, 30, 30, + // A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, + 12, 16, 19, 16, 19, 18, 18, 17, 22, 11, 17, 18, 18, 30, 22, 19, + #ifdef FIX_BUGS + //P, Q, R, S, T, U, V, W, X, Y, Z, ??, ??, ??, ¡, \, + 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 10, 19, + #else + 22, 19, 19, 20, 18, 19, 19, 29, 19, 18, 19, 19, 33, 33, 19, 19, + #endif + //??,a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, + 12, 14, 11, 11, 16, 11, 12, 14, 14, 10, 13, 12, 10, 19, 18, 12, + //p, q, r, s, t, u, v, w, x, y, z, ??, ??, ??, ??, ??, + 16, 13, 13, 11, 12, 15, 12, 15, 13, 12, 12, 37, 33, 37, 35, 37, + //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, + 16, 16, 16, 16, 33, 17, 18, 18, 18, 18, 11, 11, 11, 11, 19, 19, + //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, + 19, 19, 19, 19, 19, 19, 15, 14, 14, 14, 14, 20, 14, 11, 11, 11, + #ifdef FIX_BUGS + //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, + 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, 15, 22, 18, 21, + #else + 11, 10, 10, 10, 10, 12, 12, 12, 12, 15, 15, 15, 15, 24, 18, 21, + #endif + //i,BLANKS + 10, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + //??,?? + 19, 16 }, { //FONT1 EFIGS - //!2,!, *I,(R), $, %, &, ', [, ], *I, +, , -, ., *I, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, *I, *I, *I, *I, ?, TM, A, B, C, D, E, F, G, - 15, 7, 31, 25, 20, 23, 21, 7, 11, 10, 26, 14, 6, 12, 6, 26, 20, 7, 20, 20, 21, 20, 20, 19, 21, 20, 8, 30, 24, 30, 24, 19, 20, 22, 22, 21, 22, 18, 18, 22, - //H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, *I, \, *I, ¡, °, (C), a, b, c, d, e, f, g, h, i, j, k, l, m, n, - 22, 9, 14, 21, 18, 27, 21, 24, 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 7, 19, 10, 17, 17, 16, 17, 17, 11, 17, 17, 7, 7, 18, 7, 25, 17, - //o, p, q, r, s, t, u, v, w, x, y, z, *I, *I, $2, (2, )2, À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, Ô, Ö, Ù, Ú, Û, Ü, - 17, 17, 17, 11, 17, 11, 17, 18, 25, 19, 18, 17, 28, 26, 20, 15, 15, 20, 20, 20, 20, 29, 22, 19, 19, 19, 19, 9, 9, 9, 9, 23, 23, 23, 23, 24, 24, 24, 24, - //ß, à, á, â, ä, æ, ç, è, é, ê, ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, 02, 12, 22, 32, 42, 52, 62, 72, 82, 92, :2, A2, - 20, 19, 17, 17, 17, 30, 16, 17, 17, 17, 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 21, 17, 19, 20, 18, 19, 19, 21, 19, 19, 19, 19, 19, 16, 19, - //B2,C2,D2, E2, F2, G2, H2, I2, J2, K2, L2, M2, N2, O2, P2, Q2, R2, S2, T2, U2, V2, W2, X2, Y2, Z2, À2, Á2, Â2, Ä2, Æ2, Ç2, È2, É2, Ê2, Ë2, Ì2, Í2, Î2, Ï2, - 19, 19, 20, 19, 16, 19, 19, 9, 19, 20, 14, 29, 19, 19, 19, 19, 19, 19, 21, 19, 20, 32, 20, 19, 19, 19, 19, 19, 19, 29, 19, 19, 19, 19, 19, 9, 9, 9, 9, - //Ò2,Ó2,Ô2, Ö2, Ù2, Ú2, Û2, Ü2, ß2, Ñ2, ¿2, '2, .2, ??,?? - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 10, 9, 10, 20 + //Characters with a '2' refer to the Pricedown font. + //Characters that are referred as '*I' are characters that contain icons for PS2/XBOX, but contain regular characters on PC + //in order to display them properly in the Keyboard controls menu. + //!2,!, *I,(R), $, %, &, ', [, ], *I, +, , -, ., *I, + 15, 7, 31, 25, 20, 23, 21, 7, 11, 10, 26, 14, 6, 12, 6, 26, + //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, *I, *I, *I, *I, ?, + 20, 7, 20, 20, 21, 20, 20, 19, 21, 20, 8, 30, 24, 30, 24, 19, + //TM,A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, + 20, 22, 22, 21, 22, 18, 18, 22, 22, 9, 14, 21, 18, 27, 21, 24, + #ifdef FIX_BUGS + //P, Q, R, S, T, U, V, W, X, Y, Z, *I, \, *I, ¡, °, + 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 7, 19, + #else + 22, 22, 23, 20, 19, 23, 22, 31, 23, 23, 21, 25, 13, 30, 10, 19, + #endif + //(C),a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, + 10, 17, 17, 16, 17, 17, 11, 17, 17, 7, 7, 18, 7, 25, 17, 17, + //p, q, r, s, t, u, v, w, x, y, z, *I, *I, $2, (2, )2, + 17, 17, 11, 17, 11, 17, 18, 25, 19, 18, 17, 28, 26, 20, 15, 15, + //À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Ì, Í, Î, Ï, Ò, Ó, + 20, 20, 20, 20, 29, 22, 19, 19, 19, 19, 9, 9, 9, 9, 23, 23, + //Ô, Ö, Ù, Ú, Û, Ü, ß, à, á, â, ä, æ, ç, è, é, ê, + 23, 23, 24, 24, 24, 24, 20, 19, 17, 17, 17, 30, 16, 17, 17, 17, + #ifdef FIX_BUGS + //ë, ì, í, î, ï, ò, ó, ô, ö, ù, ú, û, ü, Ñ, ñ, ¿, + 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 21, 17, 19, + #else + 17, 11, 11, 15, 12, 17, 17, 17, 17, 17, 17, 17, 17, 19, 20, 20, + #endif + //02,12,22, 32, 42, 52, 62, 72, 82, 92, :2, A2, B2, C2, D2, E2, + 20, 18, 19, 19, 21, 19, 19, 19, 19, 19, 16, 19, 19, 19, 20, 19, + //F2,G2,H2, I2, J2, K2, L2, M2, N2, O2, P2, Q2, R2, S2, T2, U2, + 16, 19, 19, 9, 19, 20, 14, 29, 19, 19, 19, 19, 19, 19, 21, 19, + //V2,W2,X2, Y2, Z2, À2, Á2, Â2, Ä2, Æ2, Ç2, È2, É2, Ê2, Ë2, Ì2, + 20, 32, 20, 19, 19, 19, 19, 19, 19, 29, 19, 19, 19, 19, 19, 9, + #ifdef FIX_BUGS + //Í2,Î2,Ï2, Ò2, Ó2, Ô2, Ö2, Ù2, Ú2, Û2, Ü2, ß2, Ñ2, ¿2, '2, .2, + 9, 9, 9, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 10, 9, + #else + 9, 9, 9, 19, 19, 19, 19, 19, 19, 19, 19, 19, 21, 21, 10, 9, + #endif + //??,?? + 10, 20 } #ifdef MORE_LANGUAGES From e5d51604922c913ba1077ce2b3bc131f3365cc14 Mon Sep 17 00:00:00 2001 From: withmorten Date: Sat, 13 Feb 2021 17:09:12 +0100 Subject: [PATCH 095/113] glfw window icon --- src/skel/glfw/glfw.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index db9d101a..ce8da817 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -52,6 +52,11 @@ long _dwOperatingSystemVersion; #define MAX_SUBSYSTEMS (16) +#ifdef _WIN32 +#define GLFW_EXPOSE_NATIVE_WIN32 +#include +#endif + rw::EngineOpenParams openParams; static RwBool ForegroundApp = TRUE; @@ -1592,6 +1597,15 @@ main(int argc, char *argv[]) return 0; } +#ifdef _WIN32 + HWND wnd = glfwGetWin32Window(PSGLOBAL(window)); + + HICON icon = LoadIcon(instance, MAKEINTRESOURCE(IDI_MAIN_ICON)); + + SendMessage(wnd, WM_SETICON, ICON_BIG, (LPARAM)icon); + SendMessage(wnd, WM_SETICON, ICON_SMALL, (LPARAM)icon); +#endif + psPostRWinit(); ControlsManager.InitDefaultControlConfigMouse(MousePointerStateHelper.GetMouseSetUp()); From 44511e28a8cafa16415f918f29ceaed39ad9504b Mon Sep 17 00:00:00 2001 From: withmorten Date: Sat, 13 Feb 2021 17:16:53 +0100 Subject: [PATCH 096/113] more readme fixes --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7424f740..5e7661ab 100644 --- a/README.md +++ b/README.md @@ -158,13 +158,13 @@ Due to everyone staying home during the start of the Corona pandemic everybody had a lot of time to work on re3 again and we finally got a standalone exe in April 2020 (around 180k lines by then). -After the initial excitement and fixing and polishing the code more +After the initial excitement and fixing and polishing the code further, reVC was started in early May 2020 by starting from re3 code, not by starting from scratch replacing functions with a dll. After a few months of mostly steady progress we considered reVC finished in December. -Since then we have started LCS, which is currently work in progress. +Since then we have started reLCS, which is currently work in progress. ## License From 83fdad7e0d335a7d232fffe8c4d5d533b44787db Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sat, 13 Feb 2021 20:07:42 +0200 Subject: [PATCH 097/113] Update invite link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e7661ab..8e8b2ea5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FGTAmodding%2Fre3%2Fbadge%3Fref%3Dmiami&style=flat)](https://actions-badge.atrox.dev/GTAmodding/re3/goto?ref=miami) - + ## Intro From f5fdb91a43e4624c04fe43c7575a5929ac5fae0d Mon Sep 17 00:00:00 2001 From: Fire-Head Date: Sun, 14 Feb 2021 01:01:33 +0300 Subject: [PATCH 098/113] reVC logo --- README.md | 2 + logo.png | Bin 0 -> 58630 bytes logo.svg | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 164 insertions(+) create mode 100644 logo.png create mode 100644 logo.svg diff --git a/README.md b/README.md index 8e8b2ea5..48075e73 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +reVC logo + [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FGTAmodding%2Fre3%2Fbadge%3Fref%3Dmiami&style=flat)](https://actions-badge.atrox.dev/GTAmodding/re3/goto?ref=miami) diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5a192d06fd279f4d8cb61baea670bbab4e2b00 GIT binary patch literal 58630 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≈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

    dU#l2(ykw~8NB?|ra%4pwR=bU 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 Pfq}u()z4*}Q$iB}7du{r literal 0 HcmV?d00001 diff --git a/logo.svg b/logo.svg new file mode 100644 index 00000000..3af9cb19 --- /dev/null +++ b/logo.svg @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + From 49d9aa8188eecc6a6fbd0701cd15cac4706dc074 Mon Sep 17 00:00:00 2001 From: withmorten Date: Sun, 14 Feb 2021 03:11:52 +0100 Subject: [PATCH 099/113] even more readme fixes --- README.md | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 48075e73..d52e812d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ## Intro -In this repository you'll find the fully reversed source code for GTA III ([master](tree/master) branch) and GTA VC ([miami](tree/miami) branch). +In this repository you'll find the fully reversed source code for GTA III ([master](https://github.com/GTAmodding/re3/tree/master/) branch) and GTA VC ([miami](https://github.com/GTAmodding/re3/tree/miami/) branch). It has been tested and works on Windows, Linux and FreeBSD, on x86, amd64, arm and arm64.\ Rendering is handled either by original RenderWare (D3D8) @@ -23,8 +23,7 @@ We cannot build for PS2 or Xbox yet. If you're interested in doing so, get in to - [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_gl3_glfw-oal.zip) - [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/ubuntu-latest-gl3.zip) - [MacOS 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/macos-latest-gl3.zip) -- Copy the files from the `gamefiles` directory to your game root directory. (This is not strictly necessary but very much recommended) -- Move reVC executable to GTA VC directory and run it. +- Extract the downloaded zip over your GTA VC directory and run reVC. The zip includes the gamefiles and in case of OpenAL the required dlls. ## Screenshots @@ -85,7 +84,9 @@ Sorry for the inconvenience. ## Building from Source -When using premake, you may want to point GTA_VC_RE_DIR environment variable to GTA Vice City root folder, if you want executable to be moved there via post-build script. +When using premake, you may want to point GTA_VC_RE_DIR environment variable to GTA Vice City root folder if you want the executable to be moved there via post-build script. + +Clone the repository with `git clone --recursive -b miami https://github.com/GTAmodding/re3.git reVC`. Then `cd reVC` into the cloned repository.

    Linux Premake @@ -95,13 +96,6 @@ For Linux using premake, proceed: [Building on Linux](https://github.com/GTAmodd
    Linux Conan -Obtain source code. -``` -git clone https://github.com/GTAmodding/re3.git reVC -b miami -cd reVC -git submodule init -git submodule update --recursive -``` Install python and conan, and then run build. ``` conan export vendor/librw librw/master@ @@ -120,19 +114,22 @@ For FreeBSD using premake, proceed: [Building on FreeBSD](https://github.com/GTA
    Windows -Assuming you have Visual Studio: -- Clone the repo using the argument `--recursive`. +Assuming you have Visual Studio 2015/2017/2019: - Run one of the `premake-vsXXXX.cmd` variants on root folder. -- Open the project via Visual Studio +- Open build/reVC.sln with Visual Studio and compile the solution. -**If you use 64-bit D3D9**: We don't ship 64-bit Dx9 SDK. You need to download it from Microsoft if you don't have it(although it should come pre-installed after some Windows version) +Microsoft recently discontinued its downloads of the DX9 SDK. You can download an archived version here: https://archive.org/details/dxsdk_jun10 **If you choose OpenAL on Windows** You must read [Running OpenAL build on Windows](https://github.com/GTAmodding/re3/wiki/Running-OpenAL-build-on-Windows).
    -> :information_source: There are various settings in [config.h](https://github.com/GTAmodding/re3/tree/miami/src/core/config.h), you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across. +> :information_source: premake has an `--lto` option if you want the project to be compiled with Link Time Optimization. -> :information_source: **Did you notice librw?** reVC uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of reVC, but you also can use LIBRW enviorenment variable to specify path to your own librw. +> :information_source: There are various settings in [config.h](https://github.com/GTAmodding/re3/tree/miami/src/core/config.h), you may want to take a look there. + +> :information_source: reVC uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw. + +If you feel the need, you can also use Codewarrior 7 to compile reVC using the supplied codewarrior/reVC.mcp project - this requires the original RW34 libraries, and the DX8 SDK. The build is unstable compared to the MSVC builds though, and is mostly meant to serve as a reference. ## Contributing We have a [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) document that isn't followed or enforced very well. From d0afa692f523bf6d3b13403ab5c7eb6d8115a6bb Mon Sep 17 00:00:00 2001 From: aap Date: Sun, 14 Feb 2021 09:48:40 +0100 Subject: [PATCH 100/113] optimize performance -> readme to-do --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d52e812d..52628982 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ Some of them can be toggled at runtime, some cannot. The following things would be nice to have/do: * Fix physics for high FPS +* Improve performance on lower end devices, especially the OpenGL layer on the Raspberry Pi (if you have experience with this, please get in touch) * [PS2 port](https://github.com/GTAmodding/re3/wiki/PS2-port) * Xbox port (not quite as important) * reverse remaining unused/debug functions From d6fbfab7b69268b16d0df6acea4e6b2c09de2d85 Mon Sep 17 00:00:00 2001 From: withmorten Date: Sun, 14 Feb 2021 16:03:15 +0100 Subject: [PATCH 101/113] update invite link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 52628982..45a40ee2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ reVC logo [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FGTAmodding%2Fre3%2Fbadge%3Fref%3Dmiami&style=flat)](https://actions-badge.atrox.dev/GTAmodding/re3/goto?ref=miami) -
    + ## Intro From 70b919137d7468404a34f20986de5fbf45352bf1 Mon Sep 17 00:00:00 2001 From: erorcun Date: Sun, 14 Feb 2021 18:07:21 +0300 Subject: [PATCH 102/113] (Test) Try to fix streams stop after a while --- src/audio/oal/stream.cpp | 11 ++++++++--- src/audio/oal/stream.h | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/audio/oal/stream.cpp b/src/audio/oal/stream.cpp index 4817d6d5..8f074fb4 100644 --- a/src/audio/oal/stream.cpp +++ b/src/audio/oal/stream.cpp @@ -1152,6 +1152,7 @@ void CStream::SetPan(uint8 nPan) m_nPan = nPan; } +// Should only be called if source is stopped void CStream::SetPosMS(uint32 nPos) { if ( !IsOpened() ) return; @@ -1234,12 +1235,16 @@ void CStream::ClearBuffers() alSourceUnqueueBuffers(m_pAlSources[1], 1, &value); } -bool CStream::Setup() +bool CStream::Setup(bool imSureQueueIsEmpty) { if ( IsOpened() ) { alSourcei(m_pAlSources[0], AL_LOOPING, AL_FALSE); alSourcei(m_pAlSources[1], AL_LOOPING, AL_FALSE); + if (!imSureQueueIsEmpty) { + SetPlay(false); + ClearBuffers(); + } m_pSoundFile->Seek(0); //SetPosition(0.0f, 0.0f, 0.0f); SetPitch(1.0f); @@ -1343,7 +1348,7 @@ void CStream::Update() // We should wait queue to be cleared to loop track, because position calculation relies on queue. if (m_nLoopCount != 1 && m_bActive && totalBuffers[0] == 0) { - Setup(); + Setup(true); buffersRefilled = FillBuffers() != 0; if (m_nLoopCount != 0) m_nLoopCount--; @@ -1376,7 +1381,7 @@ void CStream::ProviderInit() { if ( m_bReset ) { - if ( Setup() ) + if ( Setup(true) ) { SetPan(m_nPan); SetVolume(m_nVolume); diff --git a/src/audio/oal/stream.h b/src/audio/oal/stream.h index b3e96809..9a2a2fbe 100644 --- a/src/audio/oal/stream.h +++ b/src/audio/oal/stream.h @@ -100,7 +100,7 @@ public: uint32 GetPosMS(); uint32 GetLengthMS(); - bool Setup(); + bool Setup(bool imSureQueueIsEmpty = false); void Start(); void Stop(); void Update(void); From 6ba0d2e6bd9b874e156444061621958e4d17e18a Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sun, 14 Feb 2021 20:08:55 +0300 Subject: [PATCH 103/113] fail --- src/control/SetPieces.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/control/SetPieces.cpp b/src/control/SetPieces.cpp index 143115b8..0409a8bf 100644 --- a/src/control/SetPieces.cpp +++ b/src/control/SetPieces.cpp @@ -260,8 +260,8 @@ void CSetPiece::Update(void) CCarAI::AddPoliceCarOccupants(pVehicle1); CVehicle* pVehicle2 = TryToGenerateCopCar(m_vSpawn2, m_vTarget2); if (!pVehicle2) { - CWorld::Remove(pVehicle2); - delete pVehicle2; + CWorld::Remove(pVehicle1); + delete pVehicle1; return; } pVehicle2->SetStatus(STATUS_PHYSICS); From 0681fe3ecab0d774bd6973b3df091567031898d5 Mon Sep 17 00:00:00 2001 From: Fire-Head Date: Sun, 14 Feb 2021 20:11:58 +0300 Subject: [PATCH 104/113] cannon fix --- src/render/WaterCannon.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/render/WaterCannon.cpp b/src/render/WaterCannon.cpp index da05a1ca..0f8b22a7 100644 --- a/src/render/WaterCannon.cpp +++ b/src/render/WaterCannon.cpp @@ -132,7 +132,7 @@ void CWaterCannon::Render(void) int16 pointA = m_nCur % NUM_SEGMENTPOINTS; int16 pointB = pointA - 1; - if ( (pointA - 1) < 0 ) + if ( pointB < 0 ) pointB += NUM_SEGMENTPOINTS; bool bInit = false; From e604be65d9b7845ee7ca975545fc9277c662bc11 Mon Sep 17 00:00:00 2001 From: erorcun Date: Sun, 14 Feb 2021 21:09:48 +0300 Subject: [PATCH 105/113] More compatible she-bang line --- printHash.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printHash.sh b/printHash.sh index 71f54466..e7d6f018 100755 --- a/printHash.sh +++ b/printHash.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash > $1 From 6fcea142a2959e9a0637976527faffadf321253b Mon Sep 17 00:00:00 2001 From: Fire-Head Date: Mon, 15 Feb 2021 00:54:43 +0300 Subject: [PATCH 106/113] readme update --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 45a40ee2..fb5c7ec1 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Some of them can be toggled at runtime, some cannot. * Debug menu to do and change various things (Ctrl-M to open) * Debug camera (Ctrl-B to toggle) * Rotatable camera -* Xinput controller support (Windows) +* XInput controller support (Windows) * No loading screens between islands ("map memory usage" in menu) * Rendering * Widescreen support (properly scaled HUD, Menu and FOV) @@ -71,7 +71,7 @@ The following things would be nice to have/do: * [PS2 port](https://github.com/GTAmodding/re3/wiki/PS2-port) * Xbox port (not quite as important) * reverse remaining unused/debug functions -* compare Codewarrior build with original binary for more accurate code (very tedious) +* compare CodeWarrior build with original binary for more accurate code (very tedious) ## Modding @@ -130,7 +130,7 @@ Microsoft recently discontinued its downloads of the DX9 SDK. You can download a > :information_source: reVC uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw. -If you feel the need, you can also use Codewarrior 7 to compile reVC using the supplied codewarrior/reVC.mcp project - this requires the original RW34 libraries, and the DX8 SDK. The build is unstable compared to the MSVC builds though, and is mostly meant to serve as a reference. +If you feel the need, you can also use CodeWarrior 7 to compile reVC using the supplied codewarrior/reVC.mcp project - this requires the original RW34 libraries, and the DX8 SDK. The build is unstable compared to the MSVC builds though, and is mostly meant to serve as a reference. ## Contributing We have a [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) document that isn't followed or enforced very well. @@ -150,7 +150,8 @@ After a bit of work the project lay dormant for about a year and was picked up again and pushed to github in May 2019. At the time I (aap) had reversed around 10k lines of code and estimated the final game to have around 200-250k. -Others quickly joined the effort and we made very quick progress +Others quickly joined the effort (Fire_Head, shfil, erorcun and Nick007J +in time order, and Serge a bit later) and we made very quick progress throughout the summer of 2019 after which the pace slowed down a bit. From 5ce5000b149e8df4151b758e42d0b39e1055b5e7 Mon Sep 17 00:00:00 2001 From: erorcun Date: Mon, 15 Feb 2021 05:09:46 +0300 Subject: [PATCH 107/113] Try to fix streams stop after a while 2 --- src/audio/oal/stream.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audio/oal/stream.cpp b/src/audio/oal/stream.cpp index 8f074fb4..e2e87f2d 100644 --- a/src/audio/oal/stream.cpp +++ b/src/audio/oal/stream.cpp @@ -465,7 +465,7 @@ public: #ifdef AUDIO_OAL_USE_MPG123 // fuzzy seek eliminates stutter when playing ADF but spams errors a lot (nothing breaks though) -#define MP3_USE_FUZZY_SEEK +//#define MP3_USE_FUZZY_SEEK class CMP3File : public IDecoder { From a76c962aa348479ddb5a4d30472183239ddb9285 Mon Sep 17 00:00:00 2001 From: withmorten Date: Mon, 15 Feb 2021 14:27:35 +0100 Subject: [PATCH 108/113] always console for windows Debug builds --- src/skel/glfw/glfw.cpp | 2 ++ src/skel/win/win.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index ce8da817..941a2a7b 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -1508,7 +1508,9 @@ WinMain(HINSTANCE instance, SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, nil, SPIF_SENDCHANGE); #ifndef MASTER +#ifndef DEBUG if (strstr(cmdLine, "-console")) +#endif { AllocConsole(); freopen("CONIN$", "r", stdin); diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp index 89c901b2..5cbc9ba0 100644 --- a/src/skel/win/win.cpp +++ b/src/skel/win/win.cpp @@ -2019,7 +2019,9 @@ WinMain(HINSTANCE instance, SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, nil, SPIF_SENDCHANGE); #ifndef MASTER +#ifndef DEBUG if (strstr(cmdLine, "-console")) +#endif { AllocConsole(); freopen("CONIN$", "r", stdin); From a58d76d27dc3f9fc8c6de6cf0cbbf9f957391d52 Mon Sep 17 00:00:00 2001 From: withmorten Date: Mon, 15 Feb 2021 14:58:19 +0100 Subject: [PATCH 109/113] Revert "always console for windows Debug builds" This reverts commit a76c962aa348479ddb5a4d30472183239ddb9285. --- src/skel/glfw/glfw.cpp | 2 -- src/skel/win/win.cpp | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index 941a2a7b..ce8da817 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -1508,9 +1508,7 @@ WinMain(HINSTANCE instance, SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, nil, SPIF_SENDCHANGE); #ifndef MASTER -#ifndef DEBUG if (strstr(cmdLine, "-console")) -#endif { AllocConsole(); freopen("CONIN$", "r", stdin); diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp index 5cbc9ba0..89c901b2 100644 --- a/src/skel/win/win.cpp +++ b/src/skel/win/win.cpp @@ -2019,9 +2019,7 @@ WinMain(HINSTANCE instance, SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, nil, SPIF_SENDCHANGE); #ifndef MASTER -#ifndef DEBUG if (strstr(cmdLine, "-console")) -#endif { AllocConsole(); freopen("CONIN$", "r", stdin); From adf688635a9a9fb72dc6b33a8b808edb9ca31f49 Mon Sep 17 00:00:00 2001 From: aap Date: Mon, 15 Feb 2021 15:06:30 +0100 Subject: [PATCH 110/113] removed some f suffixes from shaders --- src/extras/shaders/colourfilterVC.frag | 2 +- src/extras/shaders/colourfilterVC_PS.hlsl | 2 +- src/extras/shaders/contrast.frag | 2 +- src/extras/shaders/neoVehicle.vert | 2 +- src/extras/shaders/neoVehicle_VS.hlsl | 2 +- src/extras/shaders/obj/colourfilterVC_frag.inc | 2 +- src/extras/shaders/obj/contrast_frag.inc | 2 +- src/extras/shaders/obj/neoVehicle_vert.inc | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/extras/shaders/colourfilterVC.frag b/src/extras/shaders/colourfilterVC.frag index 9db3950e..283aa817 100644 --- a/src/extras/shaders/colourfilterVC.frag +++ b/src/extras/shaders/colourfilterVC.frag @@ -20,7 +20,7 @@ main(void) } vec4 color; color.rgb = prev.rgb; - color.a = 1.0f; + color.a = 1.0; FRAGCOLOR(color); } diff --git a/src/extras/shaders/colourfilterVC_PS.hlsl b/src/extras/shaders/colourfilterVC_PS.hlsl index 1e62950b..90d3b50c 100644 --- a/src/extras/shaders/colourfilterVC_PS.hlsl +++ b/src/extras/shaders/colourfilterVC_PS.hlsl @@ -18,6 +18,6 @@ float4 main(in float2 texcoord : TEXCOORD0) : COLOR0 tmp += prev*blurcol; prev = saturate(tmp); } - prev.a = 1.0f; + prev.a = 1.0; return prev; } diff --git a/src/extras/shaders/contrast.frag b/src/extras/shaders/contrast.frag index 1b93f6fe..2d394f66 100644 --- a/src/extras/shaders/contrast.frag +++ b/src/extras/shaders/contrast.frag @@ -12,7 +12,7 @@ main(void) vec4 dst = texture(tex0, vec2(v_tex0.x, 1.0-v_tex0.y)); vec4 color; color.rgb = dst.rgb*u_contrastMult + u_contrastAdd; - color.a = 1.0f; + color.a = 1.0; FRAGCOLOR(color); } diff --git a/src/extras/shaders/neoVehicle.vert b/src/extras/shaders/neoVehicle.vert index f0224ddb..6985a689 100644 --- a/src/extras/shaders/neoVehicle.vert +++ b/src/extras/shaders/neoVehicle.vert @@ -42,7 +42,7 @@ main(void) v_tex1 = uv2.xy*0.5 + 0.5; float b = 1.0 - clamp(dot(viewVec, Normal), 0.0, 1.0); v_reflcolor = vec4(0.0, 0.0, 0.0, 1.0); - v_reflcolor.a = mix(b*b*b*b*b, 1.0f, fresnel)*shininess; + v_reflcolor.a = mix(b*b*b*b*b, 1.0, fresnel)*shininess; for(int i = 0; i < 5; i++) v_reflcolor.rgb += DoDirLightSpec(u_specDir[i].xyz, u_specColor[i].rgb, Normal, viewVec, u_specDir[i].w)*specularity*lightStrength; diff --git a/src/extras/shaders/neoVehicle_VS.hlsl b/src/extras/shaders/neoVehicle_VS.hlsl index de75e745..fb730092 100644 --- a/src/extras/shaders/neoVehicle_VS.hlsl +++ b/src/extras/shaders/neoVehicle_VS.hlsl @@ -52,7 +52,7 @@ VS_out main(in VS_in input) output.TexCoord1 = uv2.xy*0.5 + 0.5; float b = 1.0 - saturate(dot(viewVec, Normal)); output.ReflColor = float4(0.0, 0.0, 0.0, 1.0); - output.ReflColor.a = lerp(b*b*b*b*b, 1.0f, fresnel)*shininess; + output.ReflColor.a = lerp(b*b*b*b*b, 1.0, fresnel)*shininess; //Light mainLight = lights[0]; for(i = 0; i < 5; i++) diff --git a/src/extras/shaders/obj/colourfilterVC_frag.inc b/src/extras/shaders/obj/colourfilterVC_frag.inc index 1f9bf6d8..b61322d9 100644 --- a/src/extras/shaders/obj/colourfilterVC_frag.inc +++ b/src/extras/shaders/obj/colourfilterVC_frag.inc @@ -21,7 +21,7 @@ const char *colourfilterVC_frag_src = " }\n" " vec4 color;\n" " color.rgb = prev.rgb;\n" -" color.a = 1.0f;\n" +" color.a = 1.0;\n" " FRAGCOLOR(color);\n" "}\n" diff --git a/src/extras/shaders/obj/contrast_frag.inc b/src/extras/shaders/obj/contrast_frag.inc index 97f78194..a1ad479f 100644 --- a/src/extras/shaders/obj/contrast_frag.inc +++ b/src/extras/shaders/obj/contrast_frag.inc @@ -13,7 +13,7 @@ const char *contrast_frag_src = " vec4 dst = texture(tex0, vec2(v_tex0.x, 1.0-v_tex0.y));\n" " vec4 color;\n" " color.rgb = dst.rgb*u_contrastMult + u_contrastAdd;\n" -" color.a = 1.0f;\n" +" color.a = 1.0;\n" " FRAGCOLOR(color);\n" "}\n" diff --git a/src/extras/shaders/obj/neoVehicle_vert.inc b/src/extras/shaders/obj/neoVehicle_vert.inc index b7b42622..ebd0ea12 100644 --- a/src/extras/shaders/obj/neoVehicle_vert.inc +++ b/src/extras/shaders/obj/neoVehicle_vert.inc @@ -43,7 +43,7 @@ const char *neoVehicle_vert_src = " v_tex1 = uv2.xy*0.5 + 0.5;\n" " float b = 1.0 - clamp(dot(viewVec, Normal), 0.0, 1.0);\n" " v_reflcolor = vec4(0.0, 0.0, 0.0, 1.0);\n" -" v_reflcolor.a = mix(b*b*b*b*b, 1.0f, fresnel)*shininess;\n" +" v_reflcolor.a = mix(b*b*b*b*b, 1.0, fresnel)*shininess;\n" " for(int i = 0; i < 5; i++)\n" " v_reflcolor.rgb += DoDirLightSpec(u_specDir[i].xyz, u_specColor[i].rgb, Normal, viewVec, u_specDir[i].w)*specularity*lightStrength;\n" From 63e5afda0b569903b59f46192294f1c1c240c6f8 Mon Sep 17 00:00:00 2001 From: Fire-Head Date: Mon, 15 Feb 2021 21:25:18 +0300 Subject: [PATCH 111/113] fix mailbox particle --- src/render/Particle.cpp | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp index 51249844..8c9cde12 100644 --- a/src/render/Particle.cpp +++ b/src/render/Particle.cpp @@ -49,6 +49,8 @@ #define MAX_RAINDRIP_FILES (2) +#define MAX_LEAF_FILES (2) + const char SmokeFiles[][6+1] = { @@ -165,7 +167,7 @@ RwTexture *gpFlame1Tex; RwTexture *gpFlame5Tex; RwTexture *gpRainDropSmallTex; RwTexture *gpBloodTex; -RwTexture *gpLeafTex; +RwTexture *gpLeafTex[MAX_LEAF_FILES]; RwTexture *gpCloudTex1; RwTexture *gpCloudTex4; RwTexture *gpBloodSmallTex; @@ -193,7 +195,7 @@ RwRaster *gpFlame1Raster; RwRaster *gpFlame5Raster; RwRaster *gpRainDropSmallRaster; RwRaster *gpBloodRaster; -RwRaster *gpLeafRaster; +RwRaster *gpLeafRaster[MAX_LEAF_FILES]; RwRaster *gpCloudRaster1; RwRaster *gpCloudRaster4; RwRaster *gpBloodSmallRaster; @@ -206,9 +208,6 @@ RwRaster *gpPointlightRaster; RwTexture *gpRainDropTex; RwRaster *gpRainDropRaster; -RwTexture *gpLetterTex; -RwRaster *gpLetterRaster; - RwTexture *gpSparkTex; RwTexture *gpNewspaperTex; RwTexture *gpGunSmokeTex; @@ -425,11 +424,11 @@ void CParticle::Initialise() gpBloodTex = RwTextureRead("blood", nil); gpBloodRaster = RwTextureGetRaster(gpBloodTex); - gpLeafTex = RwTextureRead("gameleaf01_64", nil); - gpLeafRaster = RwTextureGetRaster(gpLeafTex); + gpLeafTex[0] = RwTextureRead("gameleaf01_64", nil); + gpLeafRaster[0] = RwTextureGetRaster(gpLeafTex[0]); - gpLetterTex = RwTextureRead("letter", nil); - gpLetterRaster = RwTextureGetRaster(gpLetterTex); + gpLeafTex[1] = RwTextureRead("letter", nil); + gpLeafRaster[1] = RwTextureGetRaster(gpLeafTex[1]); gpCloudTex1 = RwTextureRead("cloud3", nil); gpCloudRaster1 = RwTextureGetRaster(gpCloudTex1); @@ -543,7 +542,7 @@ void CParticle::Initialise() case PARTICLE_DEBRIS: case PARTICLE_TREE_LEAVES: - entry->m_ppRaster = &gpLeafRaster; + entry->m_ppRaster = gpLeafRaster; break; case PARTICLE_DEBRIS2: @@ -773,11 +772,11 @@ void CParticle::Shutdown() RwTextureDestroy(gpBloodTex); gpBloodTex = nil; - RwTextureDestroy(gpLeafTex); - gpLeafTex = nil; + RwTextureDestroy(gpLeafTex[0]); + gpLeafTex[0] = nil; - RwTextureDestroy(gpLetterTex); - gpLetterTex = nil; + RwTextureDestroy(gpLeafTex[1]); + gpLeafTex[1] = nil; RwTextureDestroy(gpCloudTex1); gpCloudTex1 = nil; From 7c382c85b82c0d97c3c2b56a0681ea10552430cd Mon Sep 17 00:00:00 2001 From: erorcun Date: Tue, 16 Feb 2021 16:49:42 +0300 Subject: [PATCH 112/113] Add PR rules to Readme --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index fb5c7ec1..c53eac62 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,20 @@ Microsoft recently discontinued its downloads of the DX9 SDK. You can download a If you feel the need, you can also use CodeWarrior 7 to compile reVC using the supplied codewarrior/reVC.mcp project - this requires the original RW34 libraries, and the DX8 SDK. The build is unstable compared to the MSVC builds though, and is mostly meant to serve as a reference. ## Contributing +As long as it's not linux/cross-platform skeleton/compatibility layer, all of the code on the repo that's not behind a preprocessor condition(like FIX_BUGS) are **completely** reversed code from original binaries. + +We **don't** accept custom codes, as long as it's not wrapped via preprocessor conditions, or it's linux/cross-platform skeleton/compatibility layer. + +We accept only these kinds of PRs; + +- A new feature that exists in at least one of the GTAs (if it wasn't in III/VC then it doesn't have to be decompilation) +- Game, UI or UX bug fixes (if it's a fix to original code, it should be behind FIX_BUGS) +- Platform-specific and/or unused code that's not been reversed yet +- Makes reversed code more understandable/accurate, as in "which code would produce this assembly". +- A new cross-platform skeleton/compatibility layer, or improvements to them +- Translation fixes, for languages original game supported +- Code that increase maintainability + We have a [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) document that isn't followed or enforced very well. Do not use features from C++11 or later. From b451be6c7f354c5faef204085402ee19a5dd4d44 Mon Sep 17 00:00:00 2001 From: erorcun Date: Tue, 16 Feb 2021 16:46:09 +0300 Subject: [PATCH 113/113] PR rules --- .github/pull_request_template.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..f458bd43 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,13 @@ +As long as it's not linux/cross-platform skeleton/compatibility layer, all of the code on the repo that's not behind a preprocessor condition(like FIX_BUGS) are **completely** reversed code from original binaries. + +We **don't** accept custom codes, as long as it's not wrapped via preprocessor conditions, or it's linux/cross-platform skeleton/compatibility layer. + +We accept only these kinds of PRs; + +- A new feature that exists in at least one of the GTAs (if it wasn't in III/VC then it doesn't have to be decompilation) +- Game, UI or UX bug fixes (if it's a fix to R* code, it should be behind FIX_BUGS) +- Platform-specific and/or unused code that's not been reversed yet +- Makes reversed code more understandable/accurate, as in "which code would produce this assembly". +- A new cross-platform skeleton/compatibility layer, or improvements to them +- Translation fixes, for languages R* supported/outsourced +- Code that increase maintainability

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 beG6(&eEI)<|F8O=GAFYi3UD@`u7=1m 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 z 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