armsitem.tsc loading

This commit is contained in:
Alula 2020-09-10 12:25:40 +02:00
parent bed2641f10
commit b72d0451a6
No known key found for this signature in database
GPG Key ID: 3E00485503A1D8BA
4 changed files with 20 additions and 2 deletions

0
src/npc/egg_corridor.rs Normal file
View File

View File

@ -27,8 +27,10 @@ impl Scene for LoadingScene {
state.stages = stages;
let npc_table = NPCTable::load_from(filesystem::open(ctx, [&state.base_path, "/npc.tbl"].join(""))?)?;
state.npc_table = npc_table;
let script = TextScript::load_from(filesystem::open(ctx, [&state.base_path, "/Head.tsc"].join(""))?)?;
state.textscript_vm.set_global_script(script);
let head_script = TextScript::load_from(filesystem::open(ctx, [&state.base_path, "/Head.tsc"].join(""))?)?;
let arms_item_script = TextScript::load_from(filesystem::open(ctx, [&state.base_path, "/ArmsItem.tsc"].join(""))?)?;
state.textscript_vm.set_global_script(head_script);
state.textscript_vm.append_global_script(arms_item_script);
let mut next_scene = GameScene::new(state, ctx, 13)?;
next_scene.player.x = 10 * 16 * 0x200;

View File

@ -347,6 +347,22 @@ impl TextScriptVM {
if !self.suspend { self.reset(); }
}
pub fn append_global_script(&mut self, script: TextScript) {
for (key, val) in script.event_map {
self.scripts.global_script.event_map.insert(key, val);
}
if !self.suspend { self.reset(); }
}
pub fn append_scene_script(&mut self, script: TextScript) {
for (key, val) in script.event_map {
self.scripts.scene_script.event_map.insert(key, val);
}
if !self.suspend { self.reset(); }
}
pub fn reset(&mut self) {
self.state = TextScriptExecutionState::Ended;
self.clear_text_box();