1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
#[repr(C)]
#[derive(Debug)]
pub struct FighterParamTable {
    pub fighter_kind: u64,
    pub walk_accel_mul: f32,
    pub walk_accel_add: f32,
    pub walk_speed_max: f32,
    pub walk_slow_speed_mul: f32,
    pub walk_middle_ratio: f32,
    pub walk_fast_ratio: f32,
    pub ground_brake: f32,
    pub dash_speed: f32,
    pub run_accel_mul: f32,
    pub run_accel_add: f32,
    pub run_speed_max: f32,
    pub jump_squat_frame: i32,
    pub jump_speed_x: f32,
    pub jump_speed_x_mul: f32,
    pub jump_speed_x_max: f32,
    pub jump_aerial_speed_x_mul: f32,
    pub jump_initial_y: f32,
    pub jump_y: f32,
    pub mini_jump_y: f32,
    pub jump_aerial_y: f32,
    pub air_accel_x_mul: f32,
    pub air_accel_x_add: f32,
    pub air_speed_x_stable: f32,
    pub air_brake_x: f32,
    pub air_accel_y: f32,
    pub air_speed_y_stable: f32,
    pub damage_fly_top_air_accel_y: f32,
    pub damage_fly_top_speed_y_stable: f32,
    pub air_brake_y: f32,
    pub dive_speed_y: f32,
    pub weight: f32,
    pub air_ground_speed_brake: f32,
    pub landing_attack_air_frame_n: f32,
    pub landing_attack_air_frame_f: f32,
    pub landing_attack_air_frame_b: f32,
    pub landing_attack_air_frame_hi: f32,
    pub landing_attack_air_frame_lw: f32,
    pub landing_frame_light: f32,
    pub landing_frame: f32,
    pub landing_heavy_frame: i32,
    pub scale: f32,
    pub shield_radius: f32,
    pub shield_break_y: f32,
    pub guard_speed_limit: f32,
    pub jostle_front: f32,
    pub jostle_back: f32,
    pub jostle_weight: f32,
    pub cliff_jump_x_speed: f32,
    pub cliff_jump_y: f32,
    pub attack_combo_max: i32,
    pub s3_combo_max: i32,
    pub s4_combo_max: i32,
    pub combo_attack_12_end: f32,
    pub combo_attack_13_end: f32,
    pub combo_attack_32_end: f32,
    pub combo_attack_33_end: f32,
    pub combo_attack_42_end: f32,
    pub attack100_type: bool,
    pub attack_100_enable_cnt: i32,
    pub attack_100_rebound_distance: f32,
    pub attack_100_rebound_count: i32,
    pub attack_lw3_rebound_distance: f32,
    pub attack_lw3_rebound_count: i32,
    pub attack_s4_smash_hold_attack_up: f32,
    pub attack_s4_hold_frame: i32,
    pub attack_s4_hold_keep_frame: i32,
    pub attack_hi4_smash_hold_attack_up: f32,
    pub attack_hi4_hold_frame: i32,
    pub attack_hi4_hold_keep_frame: i32,
    pub attack_lw4_smash_hold_attack_up: f32,
    pub attack_lw4_hold_frame: i32,
    pub attack_lw4_hold_keep_frame: i32,
    pub attack_4_hold_scale: f32,
    pub jump_count_max: i32,
    pub squat_walk_type: bool,
    pub wall_jump_type: bool,
    pub attach_wall_type: bool,
    pub x1d633fc2eb: f32,
    pub air_lasso_type: bool,
    pub x2ea659cf56: bool,
    pub x271984ee09: f32,
    pub x2bf4bef265: f32,
    pub tread_jump_speed_y_mul: f32,
    pub tread_mini_jump_speed_y_mul: f32,
    pub tread_fall_recovery_frame: i32,
    pub tread_range_offset_y: f32,
    pub tread_range_w: f32,
    pub tread_range_h: f32,
    pub tread_range_add_w: f32,
    pub tread_range_add_h: f32,
    pub entry_stand_scale: f32,
    pub cursor_offset_y: f32,
    pub dead_rare_se_rate: i32,
    pub special_s_brake: f32,
    pub wind_resistance: f32,
    pub height: f32,
    pub expand_height: f32,
    pub result_scale_mul: f32,
    pub bury_r_depth_node: u64,
    pub bury_r_x_offset: f32,
    pub bury_r_x_offset_robot: f32,
    pub bury_r_y_offset: f32,
    pub bury_r_rot_angle: f32,
    pub slope_top_angle_max: f32,
    pub slope_front_up_max: f32,
    pub slope_back_up_max: f32,
    pub slope_loose_angle: f32,
    pub passive_wall_x_speed: f32,
    pub passive_wall_jump_x_speed: f32,
    pub passive_wall_jump_y_speed: f32,
    pub wall_jump_enable_x_speed: f32,
    pub passive_ceil_x_speed: f32,
    pub damage_model_scale_x: f32,
    pub is_blend_motion_kind: f32,
    pub damage_model_scale_z: f32,
    pub damage_model_no_hit_frame: i32,
    pub se_pitch_big: f32,
    pub se_pitch_small: f32,
    pub se_pitch_big_mushroom: f32,
    pub se_pitch_small_mushroom: f32,
    pub se_pitch_big_mushd: f32,
    pub se_pitch_small_mushd: f32,
    pub se_pitch_big_thunder: f32,
    pub se_pitch_small_thunder: f32,
    pub final_start_turn_frame: i32,
    pub scroll_rate_change_frame: i32,
    pub scroll_rate: f32,
    pub x13e3bcfb18: bool,
    pub x18f0607a99: bool,
    pub x1408832504: bool,
    pub dead_end_final: bool,
    pub final_end_jump_y: f32,
    pub charge_final_attack_mul: f32,
    pub charge_final_attack_reaction_mul: f32,
    pub star_scale: f32,
    pub star_attack_power: i32,
    pub egg_scale: f32,
    pub egg_collision_offset_1_x: f32,
    pub egg_collision_offset_1_y: f32,
    pub egg_collision_offset_1_z: f32,
    pub egg_collision_offset_2_x: f32,
    pub egg_collision_offset_2_y: f32,
    pub egg_collision_offset_2_z: f32,
    pub egg_collision_size: f32,
    pub bitten_wario_adjust_scale_node: u64,
    pub bitten_wario_adjust_scale_value: f32,
    pub palutena_autoaimbullet_target_node: u64,
    pub palutena_autoaimbullet_target_offset_x: f32,
    pub palutena_autoaimbullet_target_offset_y: f32,
    pub palutena_autoaimbullet_target_offset_z: f32,
    pub psychobreak_offset_y: f32,
    pub damage_fall_center_offset_y: f32,
    pub zelda_triforce_scale: f32,
    pub zelda_triforce_offset_y: f32,
    pub ridley_stabbed_node: u64,
    pub ridley_stabbed_offset_x: f32,
    pub ridley_stabbed_offset_y: f32,
    pub ridley_stabbed_offset_z: f32,
    pub ridley_stabbed_rhombus_offset_y: f32,
    pub gamewatch_stockicon_scale: f32,
    pub packun_final_capture_offset_y: f32,
    pub packun_final_capture_scale: f32,
    pub x2ab2a23d0d: f32,
    pub x2a3504f64e: f32,
    pub jack_final_target_scale: f32,
    pub jack_final_target_rot_y: f32,
    pub jack_final_target_effect_offset_x: f32,
    pub jack_final_target_effect_offset_y: f32,
    pub jack_final_target_effect_offset_z: f32,
    pub buddy_final_target_offset_x: f32,
    pub buddy_final_target_offset_y: f32,
    pub buddy_final_target_offset_z: f32,
    pub buddy_final_target_scale: f32,
    pub dolly_super_special2_offset_x: f32,
    pub dolly_super_special2_offset_y: f32,
    pub dolly_super_special2_offset_z: f32,
    pub dolly_super_special2_offset_x_ground: f32,
    pub dolly_super_special2_offset_y_ground: f32,
    pub dolly_super_special2_offset_z_ground: f32,
    pub x23b5b18326: f32,
    pub x23c2b6b3b0: f32,
    pub x235bbfe20a: f32,
    pub x23576d985f: f32,
    pub x23206aa8c9: f32,
    pub x23b963f973: f32,
    pub x294bf073a1: f32,
    pub x293cf74337: f32,
    pub x29a5fe128d: f32,
    pub master_final_target_offset_x: f32,
    pub master_final_target_offset_y: f32,
    pub master_final_target_offset_z: f32,
    pub x1ec3673edd: u64, // hash40("waist")
    pub x2234f9e1e4: f32,
    pub x2243fed172: f32,
    pub x22daf780c8: f32,
    pub x2456dfb0c0: f32,
    pub x2421d88056: f32,
    pub x24b8d1d1ec: f32,
    pub x24b91ddbfe: f32,
    pub x24ce1aeb68: f32,
    pub x245713bad2: f32,
    pub x223ce059e4: u64, // hash40 == 0x0aef48d400
    pub x23ed975439: f32,
    pub x1f905c13fb: f32,
    pub x1fe75b236d: f32,
    pub x1f7e5272d7: f32,
    pub x1cba8b77b5: f32,
    pub x23ca50df2b: u64, // hash40("hip")
    pub x295785c851: f32,
    pub x24dea774ab: f32,
    pub x2be31da05e: f32,
    pub x2b7e124128: f32,
    pub x19373c12d3: f32,
    pub x19327d6d0a: i32,
    pub x1a4e9ff7cc: f32,
    pub x1dea250ce6: f32,
    pub x1d9d223c70: f32,
    pub x19f190006a: i32,
    pub xf5c75804b: u64, // hash40("waist"),
    pub x137b567280: f32,
    pub x130c514216: f32,
    pub x13955813ac: f32,
    pub x11e69673b4: f32,
    pub x161eafe03d: f32,
    pub x1607b4d17c: f32,
    pub x1687a6b187: f32,
    pub x169ebd80c6: f32,
    pub item_lift_accel_mul: f32,
    pub item_lift_accel_add: f32,
    pub item_lift_speed_max: f32,
    pub throw_item_speed_mul: f32,
    pub throw_item_power_mul: f32,
    pub shoot_walk_accel_mul: f32,
    pub shoot_walk_accel_add: f32,
    pub shoot_walk_speed_max: f32,
    pub shoot_dash_speed_f: f32,
    pub shoot_dash_speed_b: f32,
    pub item_range_front: f32,
    pub item_range_front_max: f32,
    pub item_range_back: f32,
    pub item_range_h: f32,
    pub item_range_air_front: f32,
    pub item_range_air_back: f32,
    pub item_range_air_h: f32,
    pub item_grip_offset_x: f32,
    pub item_grip_offset_y: f32,
    pub item_grip_offset_z: f32,
    pub item_grip_offset_rot_x: f32,
    pub item_grip_offset_rot_y: f32,
    pub item_grip_offset_rot_z: f32,
    pub badge_scale: f32,
    pub superleaftail_scale: f32,
    pub backshield_offset_y: f32,
    pub bossgalaga_offset_y: f32,
    pub baitocrane_offset_y: f32,
    pub driver_offset_x: f32,
    pub driver_scale: f32,
    pub effect_scale: f32,
    pub x11b9282bf8: f32,
    pub x11d4f5cf13: f32,
    pub x11a49f3b9c: f32,
    pub damage_fly_smoke_node: u64,
    pub damage_fly_smoke_offset_x: f32,
    pub damage_fly_smoke_offset_y: f32,
    pub damage_fly_roll_smoke_node: u64,
    pub damage_fly_roll_smoke_offset_x: f32,
    pub damage_fly_roll_smoke_offset_y: f32,
    pub fire_hit_size: u64,
    pub ice_node: u64,
    pub ice_offset_y: f32,
    pub ice_offset_z: f32,
    pub ice_radius: f32,
    pub ice_jump_speed_y_mul: f32,
    pub ice_jump_speed_x: f32,
    pub x1a786b5238: u64,
    pub x2080da265f: u64,
    pub x204850f761: u64,
    pub photo_camera_depth: f32,
    pub photo_camera_depth_ortho: f32,
    pub camera_range_center_y: f32,
    pub camera_range_front: f32,
    pub camera_range_back: f32,
    pub camera_range_up: f32,
    pub camera_range_down: f32,
    pub camera_range_2nd_center_y: f32,
    pub camera_range_2nd_front: f32,
    pub camera_range_2nd_back: f32,
    pub camera_range_2nd_up: f32,
    pub camera_range_2nd_down: f32,
    pub zoom_camera_range_center_y: u64,
    pub zoom_camera_range_front: f32,
    pub zoom_camera_range_back: f32,
    pub zoom_camera_range_up: f32,
    pub zoom_camera_range_down: f32,
    pub clip_sphere_node: u64,
    pub clip_sphere_offset_x: f32,
    pub clip_sphere_offset_y: f32,
    pub clip_sphere_offset_z: f32,
    pub clip_sphere_radius: f32,
    pub pose_offset_y: f32,
    pub dead_up_camera_hit_offset: f32,
    pub dead_up_camera_hit_rot_min: f32,
    pub dead_up_camera_hit_rot_max: f32,
    pub dead_up_camera_hit_distance: f32,
    pub dead_up_camera_hit_offset_y: f32,
    pub finish_camera_zoom_mul: f32,
    pub finish_camera_zoom_mul_thrown: f32,
    pub critical_hit_camera_zoom_mul: f32,
    pub x12aff73dbe: u64,
    pub x1236fe6c04: u64,
    pub ladder_range_offset_y: f32,
    pub ladder_range_w: f32,
    pub ladder_range_h: f32,
    pub ladder_attack_lw_fall: bool,
    pub barrel_shoot_node: u64,
    pub barrel_smoke_offset_y: f32,
    pub barrel_attack_node: u64,
    pub barrel_attack_offset_x: f32,
    pub barrel_attack_offset_y: f32,
    pub barrel_attack_offset_z: f32,
    pub barrel_attack_size: f32,
    pub x0e0b4b30ac: bool,
    pub x1f897884d1: f32,
    pub x1ffe7fb447: f32,
    pub x228658238e: f32,
    pub x22f15f1318: f32,
    pub x259b7edbff: f32,
    pub x25ec79eb69: f32,
    pub dolly_stage_wall_check_dead_offset_x: f32,
    pub x2a23dea6e7: f32,
    pub damage_attack_size: f32,
    pub escape_air_landing_frame: i32,
    pub x17e10662a4: bool,
    pub fly_speed_y_mul: f32,
    pub attack_s4_turn: bool,
    pub x145620fd97: bool,
    pub x13042acb2d: bool,
    pub dead_up_fall_oh_ko: bool,
    pub x187608007b: bool,
    pub x13cf982a55: bool,
    pub lw4_combo_max: i32,
    pub high_speed_dash_attack_offset_x: f32,
    pub high_speed_dash_attack_offset_y: f32,
    pub high_speed_dash_attack_offset_z: f32,
    pub item_range_offset_y: f32,
    pub item_range_air_offset_y: f32,
    pub size: i32,
    pub skin_kind: i32,
    pub metal_sound_level: i32,
    pub bury_motion_height: i32,
    pub bury_r_motion_height: i32,
    pub attack_combo_type: i32,
    pub aerial_type: i32,
}

#[repr(C)]
#[derive(Debug)]
pub struct FighterParams {
    pub params: super::Params,
    pub fighter_param_table: *mut [FighterParamTable; 90],
    pad_00: [u64; 2],
}

impl super::Filepath for FighterParams {
    fn filepath() -> &'static str {
        "fighter/common/param/fighter_param.prc"
    }
}