Skip to content

Commit 44b567b

Browse files
authored
Merge branch 'HDR-Development:dev' into PMRoyProject
2 parents da7f671 + b17edb2 commit 44b567b

File tree

18 files changed

+163
-340
lines changed

18 files changed

+163
-340
lines changed

Cargo.toml

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[workspace]
2-
members = ["crates/*", "dynamic", "fighters/*", "hdr-macros", "utils"]
2+
members = ["dynamic", "fighters/*", "hdr-macros", "utils"]
33

44
resolver = "2"
55

@@ -226,10 +226,6 @@ smashline.workspace = true
226226
skyline-web = { workspace = true, optional = true }
227227
utils.workspace = true
228228

229-
[build-dependencies]
230-
build-tools = { path = "crates/build-tools" }
231-
hdr-macros.workspace = true
232-
233229
[features]
234230
default = [
235231
"bayonetta",

build.rs

-15
This file was deleted.

crates/build-tools/Cargo.toml

-12
This file was deleted.

crates/build-tools/src/lib.rs

-48
This file was deleted.

crates/build-tools/src/main.rs

-7
This file was deleted.

fighters/marth/src/acmd/specials.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ unsafe fn marth_special_s1_game(fighter: &mut L2CAgentBase) {
1818
ATTACK(fighter, 1, 0, Hash40::new("top"), 4.0, 92, 60, 0, 25, 7.5, 0.0, 9.5, 16.5, None, None, None, 1.0, 0.8, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, true, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_MARTH_SWORD, *ATTACK_REGION_SWORD);
1919
ATTACK(fighter, 2, 0, Hash40::new("top"), 4.0, 20, 60, 0, 25, 4.5, 0.0, 9.5, 3.0, None, None, None, 1.0, 0.8, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, true, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
2020
}
21-
frame(lua_state, 7.0);
21+
frame(lua_state, 10.0);
2222
if is_excute(fighter) {
2323
AttackModule::clear_all(boma);
2424
WorkModule::on_flag(boma, *FIGHTER_MARTH_STATUS_SPECIAL_S_FLAG_MOTION_CHANGE_ENABLE);

fighters/rockman/src/status/rockbuster/shoot_jump_squat.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ unsafe fn rockman_rockbuster_shoot_jump_squat_main(fighter: &mut L2CFighterCommo
5858
rockman_rockbuster_main_helper(fighter, false.into(), true.into(), L2CValue::Void(), L2CValue::Void());
5959
MotionModule::change_motion(
6060
fighter.module_accessor,
61-
Hash40::new("jump_squat"),
61+
Hash40::new("jump_squat_buster"),
6262
0.0,
6363
1.0,
6464
false,

fighters/rockman/src/vtable_hook.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,8 @@ pub fn install(is_runtime: bool) {
318318
skyline::patching::Patch::in_text(0x10839cc).nop();
319319

320320
// Patches which status to compare to for Metal Blade.
321-
skyline::patching::Patch::in_text(0x1080264).data(0x7107741Fu32);
321+
skyline::patching::Patch::in_text(0x1080264).nop();
322+
skyline::patching::Patch::in_text(0x1080268).nop();
322323

323324
skyline::install_hooks!(
324325
rockman_vtable_func,

fighters/sheik/src/acmd/aerials.rs

+16-58
Original file line numberDiff line numberDiff line change
@@ -108,72 +108,32 @@ unsafe fn sheik_attack_air_b_game(fighter: &mut L2CAgentBase) {
108108
unsafe fn sheik_attack_air_hi_game(fighter: &mut L2CAgentBase) {
109109
let lua_state = fighter.lua_state_agent;
110110
let boma = fighter.boma();
111-
frame(lua_state, 5.0);
111+
frame(lua_state, 4.0);
112112
if is_excute(fighter) {
113113
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING);
114-
ATTACK(fighter, 0, 0, Hash40::new("kneer"), 11.0, 80, 118, 0, 15, 4.16, 5.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
115-
ATTACK(fighter, 1, 0, Hash40::new("kneer"), 11.0, 80, 118, 0, 15, 3.66, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
114+
ATTACK(fighter, 0, 0, Hash40::new("kneer"), 1.5, 367, 80, 0, 45, 4.0, 5.0, 0.0, 0.0, None, None, None, 0.5, 1.3, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 4, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
115+
ATTACK(fighter, 1, 0, Hash40::new("kneer"), 1.5, 367, 80, 0, 45, 4.0, 0.0, 0.0, 0.0, None, None, None, 0.5, 1.3, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 4, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
116+
ATTACK(fighter, 2, 0, Hash40::new("legr"), 1.5, 367, 80, 0, 45, 3.5, 1.0, 0.0, 0.0, None, None, None, 0.5, 1.3, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 4, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
116117
}
117-
frame(lua_state, 8.0);
118+
frame(lua_state, 16.0);
118119
if is_excute(fighter) {
119-
ATTACK(fighter, 0, 0, Hash40::new("kneer"), 9.0, 70, 120, 0, 10, 4.16, 5.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_sting"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
120-
ATTACK(fighter, 1, 0, Hash40::new("kneer"), 9.0, 70, 120, 0, 10, 3.66, 0.0, 0.0, 0.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_sting"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
120+
AttackModule::clear_all(boma);
121121
}
122-
frame(lua_state, 21.0);
122+
frame(lua_state, 23.0);
123+
if is_excute(fighter) {
124+
FT_MOTION_RATE(fighter, 1.0);
125+
ATTACK(fighter, 0, 1, Hash40::new("kneel"), 6.0, 80, 135, 0, 45, 4.7, 5.0, 0.0, 0.0, None, None, None, 1.5, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
126+
ATTACK(fighter, 1, 1, Hash40::new("kneel"), 6.0, 80, 135, 0, 45, 4.7, 0.0, 0.0, 0.0, None, None, None, 1.5, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
127+
ATTACK(fighter, 2, 1, Hash40::new("legl"), 6.0, 80, 135, 0, 45, 4.7, 0.0, 0.0, 0.0, None, None, None, 1.5, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_sting"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_KICK, *ATTACK_REGION_KICK);
128+
}
129+
frame(lua_state, 26.0);
123130
if is_excute(fighter) {
124131
AttackModule::clear_all(boma);
125132
}
126-
frame(lua_state, 30.0);
133+
frame(lua_state, 44.0);
127134
if is_excute(fighter) {
128135
WorkModule::off_flag(boma, *FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING);
129136
}
130-
131-
}
132-
133-
#[acmd_script( agent = "sheik", script = "effect_attackairhi", category = ACMD_EFFECT, low_priority )]
134-
unsafe fn effect_attackairhi(agent: &mut L2CAgentBase) {
135-
let lua_state = agent.lua_state_agent;
136-
let boma = agent.boma();
137-
frame(lua_state, 4.0);
138-
if is_excute(agent) {
139-
EFFECT_FOLLOW(agent, Hash40::new("sys_spin_wind"), Hash40::new("top"), 0, 19, 4, -20, 0, 180, 0.3, true);
140-
LAST_EFFECT_SET_RATE(agent, 1.3);
141-
}
142-
frame(lua_state, 5.0);
143-
for _ in 0..3 {
144-
if is_excute(agent) {
145-
agent.clear_lua_stack();
146-
lua_args!(agent, Hash40::new("sys_spin_wind_s"), Hash40::new("top"), 0.0, 17.5, 3.5, 19.0, 0.0, 180.0, 0.4, 4, 4, 4, 0, 0, 0, true);
147-
sv_animcmd::EFFECT_FOLLOW_RND(agent.lua_state_agent);
148-
LAST_EFFECT_SET_RATE(agent, 2.5);
149-
}
150-
wait(lua_state, 1.0);
151-
if is_excute(agent) {
152-
agent.clear_lua_stack();
153-
lua_args!(agent, Hash40::new("sys_spin_wind_s"), Hash40::new("top"), 0.0, 15.5, 3.25, 19.0, 0.0, 180.0, 0.5, 4, 4, 4, 0, 0, 0, true);
154-
sv_animcmd::EFFECT_FOLLOW_RND(agent.lua_state_agent);
155-
LAST_EFFECT_SET_RATE(agent, 2);
156-
}
157-
wait(lua_state, 1.0);
158-
if is_excute(agent) {
159-
agent.clear_lua_stack();
160-
lua_args!(agent, Hash40::new("sys_spin_wind_s"), Hash40::new("top"), 0.0, 12.0, 3.0, 19.0, 0.0, 180.0, 0.65, 3, 2, 3, 0, 0, 0, true);
161-
sv_animcmd::EFFECT_FOLLOW_RND(agent.lua_state_agent);
162-
LAST_EFFECT_SET_RATE(agent, 2);
163-
}
164-
wait(lua_state, 1.0);
165-
}
166-
}
167-
168-
#[acmd_script( agent = "sheik", script = "sound_attackairhi", category = ACMD_SOUND, low_priority )]
169-
unsafe fn sound_attackairhi(agent: &mut L2CAgentBase) {
170-
let lua_state = agent.lua_state_agent;
171-
let boma = agent.boma();
172-
frame(lua_state, 4.0);
173-
if is_excute(agent) {
174-
PLAY_SEQUENCE(agent, Hash40::new("seq_sheik_rnd_attack"));
175-
PLAY_STATUS(agent, Hash40::new("se_sheik_attackair_h01"));
176-
}
177137
}
178138

179139
#[acmd_script( agent = "sheik", script = "expression_attackairhi", category = ACMD_EXPRESSION, low_priority )]
@@ -184,7 +144,7 @@ unsafe fn expression_attackairhi(agent: &mut L2CAgentBase) {
184144
if is_excute(agent) {
185145
ControlModule::set_rumble(boma, Hash40::new("rbkind_nohitm"), 0, false, *BATTLE_OBJECT_ID_INVALID as u32);
186146
}
187-
frame(lua_state, 5.0);
147+
frame(lua_state, 4.0);
188148
if is_excute(agent) {
189149
RUMBLE_HIT(agent, Hash40::new("rbkind_attackm"), 0);
190150
}
@@ -289,8 +249,6 @@ pub fn install() {
289249
sheik_attack_air_f_effect,
290250
sheik_attack_air_b_game,
291251
sheik_attack_air_hi_game,
292-
effect_attackairhi,
293-
sound_attackairhi,
294252
expression_attackairhi,
295253
sheik_attack_air_lw_game,
296254
sheik_attack_air_lw_effect,

hdr-macros/src/lib.rs

+1-19
Original file line numberDiff line numberDiff line change
@@ -255,32 +255,14 @@ pub fn agent_params(item: TokenStream) -> TokenStream {
255255
}
256256
};
257257

258-
let path = Path::new(file!()).strip_prefix("hdr-macros").unwrap();
259-
let path = Path::new(env!("CARGO_MANIFEST_DIR")).join(path);
260-
let parent = match path.parent() {
261-
Some(parent) => parent,
262-
None => {
263-
return syn::Error::new(literal.span(), "Failed to get parent of current path.")
264-
.into_compile_error()
265-
.into()
266-
}
267-
};
268-
269-
let rom_path = parent.join("../../romfs/build/");
270-
271258
let mut output = String::new();
272259
for line in data.lines() {
273260
let line = line.trim_start();
274261
if !line.starts_with("#") {
275262
if let Some((agent, file)) = line.split_once(":") {
276263
let agent = agent.trim_start().trim_end();
277264
let file = file.trim_start().trim_end();
278-
if let Ok(metadata) = std::fs::metadata(rom_path.join(file)) {
279-
writeln!(output, "fighter_kind_{}:{}:{}", agent, file, metadata.len())
280-
.expect("Unknown error writing to output!");
281-
} else {
282-
panic!("Missing romfs file {}", file);
283-
}
265+
let _ = writeln!(output, "fighter_kind_{}:{}", agent, file);
284266
}
285267
}
286268
}

romfs/agent_params.txt

+38-38
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
1-
luigi: fighter/luigi/param/hdr.prc
2-
pikmin: fighter/pikmin/param/hdr.prc
3-
lucas: fighter/lucas/param/hdr.prc
4-
lucario: fighter/lucario/param/hdr.prc
5-
pichu: fighter/pichu/param/hdr.prc
6-
ike: fighter/ike/param/hdr.prc
7-
donkey: fighter/donkey/param/hdr.prc
8-
dolly: fighter/dolly/param/hdr.prc
9-
chrom: fighter/chrom/param/hdr.prc
10-
captain: fighter/captain/param/hdr.prc
11-
pacman: fighter/pacman/param/hdr.prc
12-
mario: fighter/mario/param/hdr.prc
13-
mariod: fighter/mariod/param/hdr.prc
14-
link: fighter/link/param/hdr.prc
15-
simon: fighter/simon/param/hdr.prc
16-
richter: fighter/richter/param/hdr.prc
17-
koopajr: fighter/koopajr/param/hdr.prc
18-
demon: fighter/demon/param/hdr.prc
19-
samus: fighter/samus/param/hdr.prc
20-
samusd: fighter/samusd/param/hdr.prc
21-
edge: fighter/edge/param/hdr.prc
22-
szerosuit: fighter/szerosuit/param/hdr.prc
23-
pit: fighter/pit/param/hdr.prc
24-
pitb: fighter/pitb/param/hdr.prc
25-
toonlink: fighter/toonlink/param/hdr.prc
26-
younglink: fighter/younglink/param/hdr.prc
27-
daisy: fighter/daisy/param/hdr.prc
28-
miiswordsman: fighter/miiswordsman/param/hdr.prc
29-
duckhunt: fighter/duckhunt/param/hdr.prc
30-
krool: fighter/krool/param/hdr.prc
31-
ganon: fighter/ganon/param/hdr.prc
32-
miifighter: fighter/miifighter/param/hdr.prc
33-
sheik: fighter/sheik/param/hdr.prc
34-
miigunner: fighter/miigunner/param/hdr.prc
35-
falco: fighter/falco/param/hdr.prc
36-
ness: fighter/ness/param/hdr.prc
37-
ryu: fighter/ryu/param/hdr.prc
38-
ken: fighter/ken/param/hdr.prc
1+
luigi: fighter/luigi/param/hdr.xml
2+
pikmin: fighter/pikmin/param/hdr.xml
3+
lucas: fighter/lucas/param/hdr.xml
4+
lucario: fighter/lucario/param/hdr.xml
5+
pichu: fighter/pichu/param/hdr.xml
6+
ike: fighter/ike/param/hdr.xml
7+
donkey: fighter/donkey/param/hdr.xml
8+
dolly: fighter/dolly/param/hdr.xml
9+
chrom: fighter/chrom/param/hdr.xml
10+
captain: fighter/captain/param/hdr.xml
11+
pacman: fighter/pacman/param/hdr.xml
12+
mario: fighter/mario/param/hdr.xml
13+
mariod: fighter/mariod/param/hdr.xml
14+
link: fighter/link/param/hdr.xml
15+
simon: fighter/simon/param/hdr.xml
16+
richter: fighter/richter/param/hdr.xml
17+
koopajr: fighter/koopajr/param/hdr.xml
18+
demon: fighter/demon/param/hdr.xml
19+
samus: fighter/samus/param/hdr.xml
20+
samusd: fighter/samusd/param/hdr.xml
21+
edge: fighter/edge/param/hdr.xml
22+
szerosuit: fighter/szerosuit/param/hdr.xml
23+
pit: fighter/pit/param/hdr.xml
24+
pitb: fighter/pitb/param/hdr.xml
25+
toonlink: fighter/toonlink/param/hdr.xml
26+
younglink: fighter/younglink/param/hdr.xml
27+
daisy: fighter/daisy/param/hdr.xml
28+
miiswordsman: fighter/miiswordsman/param/hdr.xml
29+
duckhunt: fighter/duckhunt/param/hdr.xml
30+
krool: fighter/krool/param/hdr.xml
31+
ganon: fighter/ganon/param/hdr.xml
32+
miifighter: fighter/miifighter/param/hdr.xml
33+
sheik: fighter/sheik/param/hdr.xml
34+
miigunner: fighter/miigunner/param/hdr.xml
35+
falco: fighter/falco/param/hdr.xml
36+
ness: fighter/ness/param/hdr.xml
37+
ryu: fighter/ryu/param/hdr.xml
38+
ken: fighter/ken/param/hdr.xml

0 commit comments

Comments
 (0)