Added more opcodes

This commit is contained in:
G2-Games 2024-09-30 00:41:39 -05:00
parent ab2b381181
commit 7e276f101d

View file

@ -6,7 +6,7 @@ use num_traits::{FromPrimitive, ToPrimitive};
use safe_transmute::{transmute_many, SingleManyGuard}; use safe_transmute::{transmute_many, SingleManyGuard};
fn main() { fn main() {
let mut script = BufReader::new(File::open("LOOPERS_scenario_01").unwrap()); let mut script = BufReader::new(File::open("_varset_システムフラグ").unwrap());
let mut unknown_count = 0; let mut unknown_count = 0;
while let Ok(byte) = script.read_u8() { while let Ok(byte) = script.read_u8() {
@ -62,15 +62,15 @@ fn parse_opcode<R: Read + BufRead>(opcode: Opcode, mut input: R) -> Result<(), i
}, },
Opcode::IMAGELOAD => { Opcode::IMAGELOAD => {
let mode = input.read_u8()?; let mode = input.read_u8()?;
println!("Mode: {mode}");
if mode == 0 { if mode == 0 {
println!("Unknown: {}", input.read_u16::<LE>()?); input.read_u16::<LE>()?;
} else { } else {
println!("Unknown: {}", input.read_u16::<LE>()?); input.read_u16::<LE>()?;
println!("Unknown: {}", input.read_u16::<LE>()?); input.read_u16::<LE>()?;
} }
let image_id = input.read_u32::<LE>()?; let image_id = input.read_u32::<LE>()?;
println!("Mode: {mode}");
println!("Image ID: {image_id}"); println!("Image ID: {image_id}");
println!("-----"); println!("-----");
}, },
@ -93,20 +93,40 @@ fn parse_opcode<R: Read + BufRead>(opcode: Opcode, mut input: R) -> Result<(), i
} }
Opcode::VARSTR_SET => { Opcode::VARSTR_SET => {
let varstr = VarStrSet { let varstr = VarStrSet {
opcode,
variant: input.read_u8()?, variant: input.read_u8()?,
unknown1: input.read_u16::<LE>()?, unknown1: input.read_u16::<LE>()?,
unknown2: input.read_u16::<LE>()?, unknown2: input.read_u16::<LE>()?,
string: ScriptString::read(&mut input)?, string: ScriptString::read(&mut input)?,
unknown3: input.read_u16::<LE>()?, unknown3: input.read_u16::<LE>()?,
}; };
//println!("{}", varstr.string.to_string()); println!("{}", varstr.string.to_string());
println!("{:02X?}", varstr.variant); println!("{:02X?}", varstr.variant);
println!("{:02X?}", varstr.unknown1); println!("{:02X?}", varstr.unknown1);
println!("ID: {}", varstr.unknown2); println!("ID: {}", varstr.unknown2);
println!("{:02X?}", varstr.unknown3); println!("{:02X?}", varstr.unknown3);
println!("-----"); println!("-----");
} }
Opcode::VARSTR_ADD => {
let varstr = VarStrAdd {
variant: input.read_u8()?,
id: input.read_u16::<LE>()?,
unknown1: input.read_u16::<LE>()?,
string: ScriptString::read(&mut input)?,
};
println!("{}", varstr.string.to_string());
println!("{:02X?}", varstr.variant);
println!("ID: {}", varstr.id);
println!("{:02X?}", varstr.unknown1);
println!("-----");
}
Opcode::SETCGFLAG => {
let variant = input.read_u8()?;
let id = input.read_u16::<LE>()?;
let unk1 = input.read_u16::<LE>()?;
let unk2 = input.read_u16::<LE>()?;
println!("ID: {}", id);
println!("-----");
}
_ => (), _ => (),
} }
@ -270,7 +290,6 @@ struct Message {
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq)]
struct VarStrSet { struct VarStrSet {
opcode: Opcode,
variant: u8, variant: u8,
unknown1: u16, unknown1: u16,
unknown2: u16, unknown2: u16,
@ -278,6 +297,14 @@ struct VarStrSet {
unknown3: u16, unknown3: u16,
} }
#[derive(Debug, PartialEq, Eq)]
struct VarStrAdd {
variant: u8,
id: u16,
unknown1: u16,
string: ScriptString,
}
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq)]
struct ScriptString { struct ScriptString {
length: i16, length: i16,