Skip to content

Commit b081de9

Browse files
committed
fix(CPedWeaponMgr): don't deref CWeaponInfo in ctor
1 parent 078989d commit b081de9

2 files changed

Lines changed: 41 additions & 40 deletions

File tree

SSV2/includes/classes/gta/CPedWeaponManager.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ function CPedWeaponManager.new(ptr)
2828
m_ptr = ptr,
2929
m_owner = ptr:add(0x0010):deref(), -- CPed
3030
m_selected_weapon_hash = ptr:add(0x0018),
31-
m_weapon_info = CWeaponInfo(ptr:add(0x0020):deref()),
32-
m_vehicle_weapon_info = CWeaponInfo(ptr:add(0x0070):deref()),
31+
m_weapon_info = CWeaponInfo(ptr:add(0x0020)),
32+
m_vehicle_weapon_info = CWeaponInfo(ptr:add(0x0070)),
3333
---@diagnostic disable-next-line: param-type-mismatch
3434
}, CPedWeaponManager)
3535
end

SSV2/includes/classes/gta/CWeaponInfo.lua

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -120,44 +120,45 @@ function CWeaponInfo.new(ptr)
120120
return
121121
end
122122

123-
---@diagnostic disable-next-line: param-type-mismatch
124-
local instance = setmetatable({ m_ptr = ptr }, CWeaponInfo)
125-
instance.m_name_hash = ptr:add(0x0010)
126-
instance.m_model_hash = ptr:add(0x0014)
127-
instance.m_audio_hash = ptr:add(0x0018)
128-
instance.m_slot_hash = ptr:add(0x001C)
129-
instance.m_damage_type = ptr:add(0x0020)
130-
instance.m_fire_type = ptr:add(0x0054)
131-
instance.m_wheel_slot = ptr:add(0x0058)
132-
instance.m_group_hash = ptr:add(0x005C)
133-
instance.m_clip_size = ptr:add(0x0070)
134-
instance.m_damage = ptr:add(0x00B0)
135-
instance.m_vehicle_damage_modifier = ptr:add(0x00D4)
136-
instance.m_force = ptr:add(0x00D8)
137-
instance.m_force_on_ped = ptr:add(0x00DC)
138-
instance.m_force_on_vehicle = ptr:add(0x00E0)
139-
instance.m_force_on_heli = ptr:add(0x00E4)
140-
instance.m_force_max_strength_mult = ptr:add(0x00F8)
141-
instance.m_projectile_force = ptr:add(0x0108)
142-
instance.m_frag_impulse = ptr:add(0x010C)
143-
instance.m_penetration = ptr:add(0x0110)
144-
instance.m_speed = ptr:add(0x011C)
145-
instance.m_bullets_in_batch = ptr:add(0x0120)
146-
instance.m_bullets_per_anime_loop = ptr:add(0x0138)
147-
instance.m_time_between_shots = ptr:add(0x013C)
148-
instance.m_should_fire_time_left = ptr:add(0x0140)
149-
instance.m_alt_wait_time = ptr:add(0x0150)
150-
instance.m_effect_group = ptr:add(0x0170)
151-
instance.m_vehicle_weapon_hash = ptr:add(0x02B4)
152-
instance.m_default_camera_hash = ptr:add(0x02B8)
153-
instance.m_aim_camera_hash = ptr:add(0x02BC)
154-
instance.m_fire_camera_hash = ptr:add(0x02C0)
155-
instance.m_camera_fov = ptr:add(0x02FC)
156-
instance.m_reticule_scale = ptr:add(0x05A8)
157-
instance.m_reticule_style_hash = ptr:add(0x05AC)
158-
instance.m_firing_pattern_aliases = CWeaponFiringPatternAliases(ptr:add(0x0920):deref())
159-
160-
return instance
123+
ptr = ptr:deref()
124+
return setmetatable({
125+
m_ptr = ptr,
126+
m_name_hash = ptr:add(0x0010),
127+
m_model_hash = ptr:add(0x0014),
128+
m_audio_hash = ptr:add(0x0018),
129+
m_slot_hash = ptr:add(0x001C),
130+
m_damage_type = ptr:add(0x0020),
131+
m_fire_type = ptr:add(0x0054),
132+
m_wheel_slot = ptr:add(0x0058),
133+
m_group_hash = ptr:add(0x005C),
134+
m_clip_size = ptr:add(0x0070),
135+
m_damage = ptr:add(0x00B0),
136+
m_vehicle_damage_modifier = ptr:add(0x00D4),
137+
m_force = ptr:add(0x00D8),
138+
m_force_on_ped = ptr:add(0x00DC),
139+
m_force_on_vehicle = ptr:add(0x00E0),
140+
m_force_on_heli = ptr:add(0x00E4),
141+
m_force_max_strength_mult = ptr:add(0x00F8),
142+
m_projectile_force = ptr:add(0x0108),
143+
m_frag_impulse = ptr:add(0x010C),
144+
m_penetration = ptr:add(0x0110),
145+
m_speed = ptr:add(0x011C),
146+
m_bullets_in_batch = ptr:add(0x0120),
147+
m_bullets_per_anime_loop = ptr:add(0x0138),
148+
m_time_between_shots = ptr:add(0x013C),
149+
m_should_fire_time_left = ptr:add(0x0140),
150+
m_alt_wait_time = ptr:add(0x0150),
151+
m_effect_group = ptr:add(0x0170),
152+
m_vehicle_weapon_hash = ptr:add(0x02B4),
153+
m_default_camera_hash = ptr:add(0x02B8),
154+
m_aim_camera_hash = ptr:add(0x02BC),
155+
m_fire_camera_hash = ptr:add(0x02C0),
156+
m_camera_fov = ptr:add(0x02FC),
157+
m_reticule_scale = ptr:add(0x05A8),
158+
m_reticule_style_hash = ptr:add(0x05AC),
159+
m_firing_pattern_aliases = CWeaponFiringPatternAliases(ptr:add(0x0920):deref())
160+
---@diagnostic disable-next-line: param-type-mismatch
161+
}, CWeaponInfo)
161162
end
162163

163164
---@return boolean

0 commit comments

Comments
 (0)