Add ped spawning related converters

- Added converters:
    - PedObjectiveConverter
    - PedOccupationConverter
    - PedState2Converter
    - PedStateConverter
This commit is contained in:
izawartka 2026-08-02 21:15:14 +02:00
parent 98f9297979
commit 2f5c8536d7
6 changed files with 220 additions and 0 deletions

View File

@ -294,7 +294,11 @@
<ClInclude Include="src\converters\native-cheat.h" />
<ClInclude Include="src\converters\object-type.h" />
<ClInclude Include="src\converters\ped-graphic-type.h" />
<ClInclude Include="src\converters\ped-objective.h" />
<ClInclude Include="src\converters\ped-occupation.h" />
<ClInclude Include="src\converters\ped-remap.h" />
<ClInclude Include="src\converters\ped-state-2.h" />
<ClInclude Include="src\converters\ped-state.h" />
<ClInclude Include="src\converters\ped-threat-reaction.h" />
<ClInclude Include="src\converters\ped-threat-search.h" />
<ClInclude Include="src\converters\powerup.h" />

View File

@ -517,8 +517,12 @@
<ClInclude Include="src\modules\modmenu\segments\gang-respect-segment.h" />
<ClInclude Include="src\modules\ui\components\icon-sprite.h" />
<ClInclude Include="src\modules\modmenu\quick-actions\toggle-mouse-control.h" />
<ClInclude Include="src\converters\ped-occupation.h" />
<ClInclude Include="src\converters\ped-threat-search.h" />
<ClInclude Include="src\converters\ped-threat-reaction.h" />
<ClInclude Include="src\converters\ped-objective.h" />
<ClInclude Include="src\converters\ped-state.h" />
<ClInclude Include="src\converters\ped-state-2.h" />
<ClInclude Include="src\game\utils\ped-utils.h" />
<ClInclude Include="src\modules\modmenu\utils\get-nearest-car.h" />
<ClInclude Include="src\game\utils\car-utils.h" />

View File

@ -0,0 +1,62 @@
#pragma once
#include <string>
#include "../game/game.h"
class PedObjectiveConverter {
public:
static std::wstring ConvertToString(Game::PED_OBJECTIVE value) {
switch (value) {
case Game::PED_OBJECTIVE_NO_OBJ: return L"No objective";
case Game::PED_OBJECTIVE_FLEE_ON_FOOT_TILL_SAFE: return L"Flee on foot till safe";
case Game::PED_OBJECTIVE_FLEE_CHAR_ON_FOOT_TILL_SAFE: return L"Flee character on foot till safe";
case Game::PED_OBJECTIVE_FLEE_CHAR_ON_FOOT_ALWAYS: return L"Flee character on foot always";
case Game::PED_OBJECTIVE_FLEE_CHAR_ANY_MEANS_TILL_SAFE: return L"Flee character any means till safe";
case Game::PED_OBJECTIVE_FLEE_CHAR_ANY_MEANS_ALWAYS: return L"Flee character any means always";
case Game::PED_OBJECTIVE_FLEE_CHAR_ALWAYS_ONCE_CAR_STOPPED: return L"Flee character any means always once car stopped";
// ...
case Game::PED_OBJECTIVE_GO_TO_AREA_ON_FOOT: return L"Go to area on foot";
case Game::PED_OBJECTIVE_GO_TO_AREA_ANY_MEANS: return L"Go to area any means";
case Game::PED_OBJECTIVE_GO_TO_AREA_IN_CAR: return L"Go to area in car";
// ...
case Game::PED_OBJECTIVE_GO_TO_CHAR_ON_FOOT: return L"Go to character on foot";
// ...
case Game::PED_OBJECTIVE_KILL_CHAR_ANY_MEANS: return L"Kill character any means";
case Game::PED_OBJECTIVE_KILL_CHAR_ON_FOOT: return L"Kill character on foot";
case Game::PED_OBJECTIVE_KILL_CHAR_IN_CAR: return L"Kill character in car";
// ...
case Game::PED_OBJECTIVE_BEAT_OR_ROB_CHAR: return L"Beat or rob character";
case Game::PED_OBJECTIVE_GUARD_SPOT: return L"Guard spot";
case Game::PED_OBJECTIVE_GUARD_AREA: return L"Guard area";
case Game::PED_OBJECTIVE_WAIT_ON_FOOT: return L"Wait on foot";
case Game::PED_OBJECTIVE_WAIT_IN_CAR: return L"Wait in car";
// ...
case Game::PED_OBJECTIVE_ENTER_CAR: return L"Enter car";
case Game::PED_OBJECTIVE_LEAVE_CAR: return L"Leave car";
case Game::PED_OBJECTIVE_ENTER_TRAIN: return L"Enter train";
case Game::PED_OBJECTIVE_LEAVE_TRAIN: return L"Leave train";
// ...
case Game::PED_OBJECTIVE_PATROL_ON_FOOT: return L"Patrol on foot";
// ...
case Game::PED_OBJECTIVE_FOLLOW_CAR_IN_CAR: return L"Follow car in car";
case Game::PED_OBJECTIVE_FOLLOW_CAR_ON_FOOT_WITH_OFFSET: return L"Follow car on foot with offset";
case Game::PED_OBJECTIVE_FIRE_AT_OBJECT_FROM_VEHICLE: return L"Fire at object from vehicle";
case Game::PED_OBJECTIVE_DESTROY_OBJECT: return L"Destroy object";
case Game::PED_OBJECTIVE_DESTROY_CAR: return L"Destroy car";
case Game::PED_OBJECTIVE_PUT_OUT_CAR_FIRE: return L"Put out car fire";
// ...
default:
return L"Unknown " + std::to_wstring(static_cast<int32_t>(value));
}
}
static bool AreEqual(Game::PED_OBJECTIVE a, Game::PED_OBJECTIVE b) {
return a == b;
}
protected:
PedObjectiveConverter() = delete;
~PedObjectiveConverter() = delete;
PedObjectiveConverter(const PedObjectiveConverter&) = delete;
PedObjectiveConverter& operator=(const PedObjectiveConverter&) = delete;
};

View File

@ -0,0 +1,74 @@
#pragma once
#include <string>
#include "../game/game.h"
class PedOccupationConverter {
public:
static std::wstring ConvertToString(Game::PED_OCCUPATION value) {
switch (value) {
case Game::PED_OCCUPATION_PLAYER: return L"Player";
case Game::PED_OCCUPATION_EMPTY: return L"Empty";
// ...
case Game::PED_OCCUPATION_DUMMY: return L"Dummy";
case Game::PED_OCCUPATION_MISSION_DRIVER: return L"Mission Driver";
case Game::PED_OCCUPATION_DRIVER: return L"Driver";
// ...
case Game::PED_OCCUPATION_BUS_PASSENGER: return L"Bus Passenger";
case Game::PED_OCCUPATION_TRAIN_PASSENGER: return L"Train Passenger";
case Game::PED_OCCUPATION_DRIVER2: return L"Driver 2";
// ...
case Game::PED_OCCUPATION_ANGRY_DRIVER: return L"Angry Driver";
case Game::PED_OCCUPATION_PSYCHO: return L"Psycho";
case Game::PED_OCCUPATION_MUGGER: return L"Mugger";
case Game::PED_OCCUPATION_CARTHIEF: return L"Car Thief";
case Game::PED_OCCUPATION_BANK_ROBBER: return L"Bank Robber";
case Game::PED_OCCUPATION_CRIMINAL: return L"Criminal";
case Game::PED_OCCUPATION_GANG_MEMBER: return L"Gang Member";
// ...
case Game::PED_OCCUPATION_ELVIS: return L"Elvis";
case Game::PED_OCCUPATION_MEDIC: return L"Medic";
case Game::PED_OCCUPATION_POLICE: return L"Police";
case Game::PED_OCCUPATION_SWAT: return L"SWAT";
case Game::PED_OCCUPATION_FBI: return L"FBI";
case Game::PED_OCCUPATION_ARMY_IN_JEEP: return L"Army in Jeep";
case Game::PED_OCCUPATION_GUARD: return L"Guard";
case Game::PED_OCCUPATION_POLICE_ON_FOOT: return L"Police on Foot";
// ...
case Game::PED_OCCUPATION_ARMY_ON_FOOT: return L"Army on Foot";
case Game::PED_OCCUPATION_GUARD_AGAINST_PLAYER: return L"Guard Against Player";
case Game::PED_OCCUPATION_CRIMINAL_TYPE1: return L"Criminal Type 1";
case Game::PED_OCCUPATION_CRIMINAL_TYPE2: return L"Criminal Type 2";
case Game::PED_OCCUPATION_SPECIAL_GROUP_MEMBER: return L"Special Group Member";
case Game::PED_OCCUPATION_TANK_DRIVER: return L"Tank Driver";
// ...
case Game::PED_OCCUPATION_ROAD_BLOCK_FBI: return L"Road Block FBI";
case Game::PED_OCCUPATION_FIREMAN: return L"Fireman";
case Game::PED_OCCUPATION_ROAD_BLOCK_TANK_MAN: return L"Road Block Tank Man";
// ...
case Game::PED_OCCUPATION_DRONE: return L"Drone";
case Game::PED_OCCUPATION_DRIVER_GET_OUTTA_MY_CAR: return L"Driver (Get outta my car)";
case Game::PED_OCCUPATION_STAND_STILL_BLOKE: return L"Stand Still Bloke";
case Game::PED_OCCUPATION_ELVIS_LEADER: return L"Elvis Leader";
case Game::PED_OCCUPATION_REFUGEES: return L"Refugees";
case Game::PED_OCCUPATION_ANY_LAW_ENFORCEMENT: return L"Any Law Enforcement";
case Game::PED_OCCUPATION_ANY_EMERGENCY_SERVICE_MAN: return L"Any Emergency Service Man";
case Game::PED_OCCUPATION_ANY_GANG_MEMBER: return L"Any Gang Member";
case Game::PED_OCCUPATION_ANY_ELVIS: return L"Any Elvis";
case Game::PED_OCCUPATION_DRIVER3: return L"Driver3";
case Game::PED_OCCUPATION_NO_OCCUPATION: return L"No Occupation";
default:
return L"Unknown " + std::to_wstring(static_cast<int32_t>(value));
}
}
static bool AreEqual(Game::PED_OCCUPATION a, Game::PED_OCCUPATION b) {
return a == b;
}
protected:
PedOccupationConverter() = delete;
~PedOccupationConverter() = delete;
PedOccupationConverter(const PedOccupationConverter&) = delete;
PedOccupationConverter& operator=(const PedOccupationConverter&) = delete;
};

View File

@ -0,0 +1,38 @@
#pragma once
#include <string>
#include "../game/game.h"
class PedState2Converter {
public:
static std::wstring ConvertToString(Game::PED_STATE2 value) {
switch (value) {
case Game::PED_STATE2_WALKING: return L"Walking";
case Game::PED_STATE2_ELECTROCUTED_1: return L"Electrocuted 1";
case Game::PED_STATE2_ELECTROCUTED_2: return L"Electrocuted 2";
// ...
case Game::PED_STATE2_FOLLOWING_CAR: return L"Following car";
// ...
case Game::PED_STATE2_ENTERING_CAR: return L"Entering car";
case Game::PED_STATE2_LEAVING_CAR: return L"Leaving car";
case Game::PED_STATE2_DRIVING: return L"Driving";
case Game::PED_STATE2_WAITING_FOR_BUS: return L"Waiting for bus";
// ...
case Game::PED_STATE2_STAYING: return L"Staying";
// ...
case Game::PED_STATE2_SMOKING: return L"Smoking";
default:
return L"Unknown " + std::to_wstring(static_cast<int32_t>(value));
}
}
static bool AreEqual(Game::PED_STATE2 a, Game::PED_STATE2 b) {
return a == b;
}
protected:
PedState2Converter() = delete;
~PedState2Converter() = delete;
PedState2Converter(const PedState2Converter&) = delete;
PedState2Converter& operator=(const PedState2Converter&) = delete;
};

View File

@ -0,0 +1,38 @@
#pragma once
#include <string>
#include "../game/game.h"
class PedStateConverter {
public:
static std::wstring ConvertToString(Game::PED_STATE value) {
switch (value) {
case Game::PED_STATE_WALKING: return L"Walking";
// ...
case Game::PED_STATE_GOING_TO_TARGET: return L"Going to target";
// ...
case Game::PED_STATE_LEAVING_CAR: return L"Leaving car";
// ...
case Game::PED_STATE_STAYING: return L"Staying";
case Game::PED_STATE_FALLEN_ON_THE_GROUND: return L"Fallen on the ground";
case Game::PED_STATE_WASTED: return L"Wasted";
case Game::PED_STATE_DRIVING_CAR: return L"Driving car";
case Game::PED_STATE_INITIAL: return L"Initial";
// ...
case Game::PED_STATE_SHOT_ON_THE_GROUND: return L"Shot on the ground";
// ...
default:
return L"Unknown " + std::to_wstring(static_cast<int32_t>(value));
}
}
static bool AreEqual(Game::PED_STATE a, Game::PED_STATE b) {
return a == b;
}
protected:
PedStateConverter() = delete;
~PedStateConverter() = delete;
PedStateConverter(const PedStateConverter&) = delete;
PedStateConverter& operator=(const PedStateConverter&) = delete;
};