Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Akari

Pages: [1]
1
Q-Gears / Q-Gears v0.21 Run Wild
« on: 2012-06-27 20:11:53 »
Version 0.21 was just released. Full changelog are

Code: [Select]
================================================================================
Q-Gears v0.21 (3rd run wild) | 2012-06-26
--------------------------------------------------------------------------------

2012-06-26
----------
* [Script] Make auto runned script list and scripts directory to easy adding new scripts and system script entities. [Akari]

2012-06-25
----------
* [UI] Fix a lot of errors with main menu shown at wrong times. [Akari]
* [UI] Change button used to be more like on PC. [Akari]

2012-06-25
----------
* [Script] Fix bug where game crushed when map loaded without script file. [Akari]

2012-06-24
----------
* [Background] Add console command "background2d_manual" to enable manual background scrolling. [Akari]
* [Script] System, Entity and Ui script debug can be shown separately. "debug_script" now workd as bit flags 0x1, 0x2, 0x4. [Akari]
* [Script] Fix ScriptEntity was updating even if EntityManager was paused. [Akari]
* [Script] Entity, System and Ui scripts has been separated internaly to better handle updates and debug. [Akari]

2012-06-23
----------
* [Content Map] Add all background animations on md1_2. [Akari]
* [Export Background] Rework export algorythm. [Akari]

2012-06-06
----------
* [Background] All animations now can be played at once. [Akari]

2012-06-05
----------
* [Content Map] Add empty map used in main menu to remove 3d content from background. [Akari]
* [Content Map] Clean up test maps included in v0.21. Set camera and update scripts. [Akari]
* [Content UI] Add new option to mainmenu (Entity Testing) where most of entity movement features tested. [Akari]
* [Content UI] Add pause menu to enable exiting from game back to main menu. [Akari]

2012-06-04
----------
* [Export Background] Add export for palette (CLUT) animations. [Akari]
* [Entity] Auto and Manual move speed has been separated. [Akari]
* [Script] Add binding to enable script to run console commands. [Akari]

2012-06-02
----------
* [Entity] Movement direction on fields has been exported and implemented. [Akari]

2012-06-01
----------
* [Camera] Add reset of ingame FOV when switch to free cemera. [Akari]
* [Background] Add config variable to disable range limitations. [Akari]
* [Background] Range of Background2D scrolling has been exported and implemented. [Akari]

2012-05-31
----------
* [Content FFVII] Add md1_2 map. [Akari]
* [Camera] Camera now set and scrolled correctly in free camera mode. [Akari]
* [Background & Camera] Make background and camera correctly recalculate on resolution change. [Akari]
* [Camera] Make "camera_free" config command instead of config variable. [Akari]
* [Entity] Add entity animation speed and related lua binds. [Akari]
* [Background & Camera] Move a lot of camera related code from Background2D to CameraManager. [Akari]

2012-05-30
----------
* [Content] Add start menu options for v0.21. [Akari]
* [Background] Add autoscrolling of background and camera to given position. [Akari]

2012-05-28
----------
* [Background & Camera] Add autoscrolling of background and camera to given entity. [Akari]

2012-05-26
----------
* [Export FFVII] Fix eye export (Wedge and Guard has only 1 eye). [Akari]

2012-05-22
----------
* [Content Field] Cleanup md1stin. [Akari]
* [Content Field] Add all posible scripts for md1_1. [Akari]
* [Content UI] Main menu now can be called from within game. it correctly pauses game if is onscreen [Akari]
* [Content UI] Start menu now correctly starts md1stin. [Akari]
* [Content Script] Add "player_lock" helper function that disables player input. [Akari]
* [Content Script] Fix spawning entity in "load_field_map_request" system function. Now it correctly assigns player entity. [Akari]
* [Camera] Remove camera states (at least for now) and add console variable "camera_free" that enables free camera mode. [Akari]
* [Entity] Add pause functionality to EntityManager and "set_paused" bind to LUA. [Akari]
* [Debug] Separate usual update and debug update. When game is on pause debug still must be drawn. [Akari]
* [Export FFVII] Fix export for offset opcode 0xC3. Make it downscaled like all others position data. [Akari]
* [Export FFVII] Fix export for turn opcode 0xB4 and 0xB5. Forgot that turns are always syncronized in FFVII. [Akari]

2012-05-21
----------
* [Entity] Add player lock and same lua function "player_lock". [Akari]

2012-05-19
----------
* [Export FFVII] Add exporting with correct scale (must be set in export.cfg for now). [Akari]
* [Entity] Spawn point now set rotation as well. [Akari]

2012-05-17
----------
* [Background] Add background init and resizing corrently depending on resolution. [Akari]

2012-05-16
----------
* [Export FFVII] Fix background depth export. [Akari]

2012-04-28
----------
* [Content] Modify "MapChanger" entity to load player in given spawn point after map loading. [Akari]
* [Content] Add Savemap lua table to save all variables that was hold in real savemap. [Akari]
* [Entity] Set default run speed to 0.8 instead of 3.6 and default speed to 0.7 instead of 0.9. This is more like speeds in FFVII. [Akari]
* [Entity] Unite default and move idle animation. [Akari]
* [Entity] Rework inner animation state and play types handling. [Akari]
* [Content] Start of "ffvii_md1stin" scripting and markup gateways on maps "ffvii_md1stin", "ffvii_md1_1", "ffvii_md1_2". [Akari]
* [Export FFVII] Add gateway map names and spawn position exporting. [Akari]

2012-04-23
----------
* [Script] Add functions to work with entity points. [Akari]
* [Entity] Add entity points that declares position in 3d world. Need for gateway mechanics. [Akari]

2012-04-14
----------
* [Debug] Add 3d triangles to debug draw to improve visualization of walkmesh.

2012-04-13
----------
* [Entity] Add base line trigger like triggers and gateways in FFVII. [Akari]

2012-04-08
----------
* [Script] Add background animation management opcodes and background script object. [Akari]
* [Background] Add background animation. [Akari]
* [Export FFVII] Add exporting of tile animation. [Akari]

2012-04-03
----------
* [Background] Add blending type support to correctly draw different types of tiles. [Akari]
* [Export FFVII] Add exporting of blending types. [Akari]

2012-03-27
----------
* [Background] Add camera settings export. [Akari]
* [Content] Move FFVII models to separate folder. [Akari]
* [System] Add read quaternion from xml. [Akari]

2012-03-20
----------
* [Background] Add clearing of background on map reload. [Akari]

2012-03-14
----------
* [Console] Tab only work if command match any existed command. [Akari]
* [Entity] Finalize movement features and make them work lime in v0.17. [Akari]

2012-03-13
----------
* [Entity] Add debug draw to jump movement. [Akari]
* [Entity] Fix reseting animation to Idle during time stop. [Akari]
* [Entity] Add ability to unset entity from player with "unset_player_entity". [Akari]
* [Entity] Return all jump fucntionality from v0.17. [Akari]

2012-03-09
----------
* [Console] Add console notification to show lines from console in normal view. Cvar "console_notification = true". [Akari]
* [Content] Add Weltall and some robo from Xenogears to demo. [Akari]
* [Export Xeno] First version of Xeno animated model exporting. [Akari]

2012-03-07
----------
* [Entity] Made state for looped animation. Climb and all other looped animation now works correctly. [Akari]

2012-03-05
----------
* [Entity] Return all climb (now linear move) fucntionality from v0.17 except animation. [Akari]

2012-03-03
----------
* [Content] Add Zidane to demo. [Akari]
* [Export FFIX] Finish first version of FFIX field model exporter. [Akari]

2012-02-19
----------
* [Script] Add move_auto_animation function for entity. [Akari]
* [EntityManager] Add handling for player run button. [Akari]
* [Entity] Return all move fucntionality from v0.17. [Akari]
* [Script] Rename move_walkmesh to move_to_position. [Akari]
* [Entity] Turn to model now correctly turns to model if model moves during turn. [Akari]

2012-02-15
----------
* [Entity] Return all turn fucntionality from v0.17. [Akari]
* [Entity] Add move_sync function. [Akari]
* [Entity] Fix solid and talk radius debug draw. [Akari]

2012-02-14
----------
* [Entity] Add auto play animation on move. [Akari]

2012-02-11
----------
* [Script] Rename Ui and Entity tables to UiContainer and EntityContainer to avoid name collision with Entity class. [Akari]
* [Entity] Return all offseting fucntionality from v0.17. [Akari]

2012-02-09
----------
* [Console] Fix bug when only slash was entered. [Akari]

2012-02-08
----------
* [Entity] Add basic player movement. [Akari]
* [Script] Add script function "set_player_entity" to make entity controlled by player. [Akari]
* [Entity] Add player controlled entities. [Akari]

2011-11-23
----------
* [Background] Increase buffer for background from 256 to 1024 tiles. [Akari]
* [Debug] Increase buffer for 3d lines from 128 to 1024 lines. [Akari]

2011-11-22
----------
* [Content] Create field map changer and helper function "load_field_map_request". [Akari]
* [UI] Create fade screen effect. [Akari]
* [Script] Add system table to handle and customize system specific things. [Akari]

2011-11-18
----------
* [UI] Add alpha to animatable parameter. [Akari]
* [Background] Add 2d background base draw. [Akari]

Images are









Video for release here: http://www.youtube.com/watch?v=YPnej8iKMPg

Release itself can be downloaded for windows here: https://sourceforge.net/projects/q-gears/files/q-gears/q-gears_v0.21.zip/download

2
Q-Gears / Q-Gears v0.20
« on: 2011-08-09 18:33:18 »
Version 0.20 was just released. Full changelog are

Code: [Select]
================================================================================
Q-Gears v0.20 (2nd alpha ui) | 2011-08-10
--------------------------------------------------------------------------------

2011-08-09
----------
* [Content] Add begin and main menu prototype. Add idol screen to show UI posibilities. [Akari]
* [UI] Add spetion parameter start == -1 to play_animation so start it from very end. [Akari]
* [UI] Add script functions set_alpha and set_z. [Akari]
* [UI] Add z depth to widgets. [Akari]
* [UI] Add text_align attribute for <text_area> tag. now text can be centered. [Akari]

2011-08-04
----------
* [UI] Add set_colour to script functions. [Akari]

2011-08-03
----------
* [UI] Rename xml param show to visible. [Akari]
* [UI] Add fucntion is_visible. [Akari]
* [UI] Rename fucntions show and hide to set_sivible( bool ) as in Entity class. [Akari]
* [UI] Remove on_show and on_hide script calls. [Akari]
* [UI] Ui debug draw now has 2 stages (with names and without). [Akari]
* [Script] Rename on_pressed to on_button and add one more param to function - event_type (Repeat, Press). [Akari]
* [UI] Add colors for each corner of Sprite. Tag "colours" in xml description. [Akari]

2011-08-02
----------
* [Script] Improve debug draw. now all functions in queue displayed along with their priorities. [Akari]
* [Script] Add button events "on_pressed". [Akari]
* [Script] Add posibility to set argiments to calling functions. [Akari]
* [UI] Fix starting of default animation. [Akari]
* [Data] Add BeginMenu (new game screen from FFVII). [Akari]

2011-08-01
----------
* [Application] Add quit console command. [Akari]
* [Script] Scripts now added only if this table or function exist. [Akari]
* [Script] Add on_update callback to all entities. [Akari]
* [UI] Add UI debug draw. [Akari]
* [UI] Fix prototype loading without name. [Akari]

2011-07-31
----------
* [UI] Add prototypes tags and posibility to define prototype. [Akari]
* [UI] Add shaders support for UiSprite. Thet can be assigned with "vertex_shader"
       and "fragment_shader" in xml. [Akari, Cloudef]

2011-07-30
----------
* [Console] paint error messages to red and warning to yellow. [Akari]
* [Application] Add setting Z to debug draw to enable depth sorting. [Akari]

2011-07-29
----------
* [UI] Ui drawn under debug draw. [Akari]
* [Console] Make green colour for autocompletition. [Akari]
* [Console] Console moved to debug draw. [Akari]

2011-07-28
----------
* [UI] Add xml support for Ui Texts. Add colour tag to change colour of Ui text. [Akari]

2011-07-15
----------
* [UI] Add font classes to manage our custom UI fonts. [Akari]
* [UI] Add fonts for english and japanese characters. [Akari]
* [UI] Add text manager. [Akari]

2011-07-10
----------
* [UI] Add text widget. Add "text_area" tag with fields text and font. [Akari]
* [UI] Make widget try play default animation if default anim state is set. [Akari]

2011-07-07
----------
* [UI] Add animation play functions to lua script. [Akari]
* [UI] Add animations to widgets. Translation, rotation and scale. [Akari]
* [UI] Separate colour and alpha. And move them to widget class. [Akari]

2011-07-06
----------
* [UI] Add tag show="true" to enable visibility right on start. [Akari]

2011-07-02
----------
* [UI] Add widget transformation support. Scale and Rotation. [Akari]
* [UI] Add parent scissor test. Tag scissor="true" in screen description file. [Akari]

2011-06-30
----------
* [UI] Add sprite support. load it with <sprite> tag in screen xml. It has colour and image fields. [Akari]

2011-06-29
----------
* [UI] Added posibility to set x, y, width and height in percent and pixels altogether. [Akari]

2011-06-28
----------
* [UI] Make widgets relative to their parents. [Akari]

2011-06-27
----------
* [UI] Fix error with height in %. [Akari]
* [Camera] Add free camera speed multiplyer when shift is pressed for faster movement. [Akari]
* [Application] Add screenshot console command. Take screenshot and save it in the same directory as exe file. [Akari]

2011-06-26
----------
* [Application] Add resolution console command that allow change resolution on fly. It allow switch between fullscreen and windowed also. [Akari]
* [UI] Width and height now all relative to basic 1280x720 resolution.
* [UI] Add horizontal and vertical alignment. Add width and height of elements in % and pixels. [Akari]

2011-06-25
----------
* [Script] Fix that function "print" was output to console only when log level was set to 3. [Akari]
* [Console] Fix error on autocompletition of commands. [Akari]
* [Application] Rewrite tokenise function to work with escape characters to allow inner quotes. [Akari]
* [Console] Add script_run_string command to bind scripts to buttons. [Akari]
* [UI] Widgets how hide it's children when hided. [Akari]

2011-06-24
----------
* [Script] Rename global UI and Entity tables in script. Now Entity (was map) and Ui. [Akari]

2011-06-23
----------
* [UI] Add XML loaders for UI. [Akari]

2011-06-22
----------
* [Script] Rework script managet to allow work with nested tables. [Akari]

2011-06-21
----------
* [UI] Add colors for Ui widgets test draw. [Akari]

2011-06-20
----------
* [UI] Add test draw for UI widgets. [Akari]

2011-06-17
----------
* [UI] Add placeholder for UI. [Akari]

Images are




Video for release here: http://www.youtube.com/watch?v=DyqVlWUPNYE

Release itself can be downloaded for windows here: https://sourceforge.net/projects/q-gears/files/q-gears/

3
Does anyone has original UI textures from ffvii or ffix. Like sword from start menu or avatars of characters. Or other ui segments? Need them to test with new UI for q-gears )

4
Completely Unrelated / Armageddon Riders
« on: 2011-07-01 05:38:19 »
A little advertisement. The company where I'm working in just release game for PSN. It's called Armageddon Riders. Take a look. You may find it interesting =)



Developer: Targem Games
Publisher: Targem Games
Game Site: http://www.armageddonriders.com/
Trailer: http://www.youtube.com/watch?v=J80042UxErM&feature=player_detailpage

Armageddon Riders is a bloody car battle for fans of fast drive, with no rules and no brakes! You're driving a killing machine on the streets of a dead city. Your enemies are zombies and marauders. Go get them!
There has been a fatal accident in the Large Hadron Collider that plunged the nearby city into chaos, filling it with anomalies and turning the residents into zombies. The restricted zone became a Mecca for marauders and criminals who hunted for artifacts and thrills of dead city street racing. Outrageous speed, rivers of blood, brutal cars, equipped with instruments of destruction: spikes, saws and blades, and don't forget the boosters. Hundreds of hungry zombies roam the streets, jumping on cars and trying to get to the drivers. To survive there and return to tell the tale is a real challenge.

There is a new game Armageddon Riders Review.

http://videogamerrob.wordpress.com/2011/06/17/psn-review-armageddon-riders/

This game is available on PSN.

5
I just add some info about palette opcodes to wiki. Strange than noone documented them yet.

http://wiki.qhimm.com/FF7/Field/Script/Opcodes/E5_STPAL
http://wiki.qhimm.com/FF7/Field/Script/Opcodes/E6_LDPAL
http://wiki.qhimm.com/FF7/Field/Script/Opcodes/E7_CPPAL
http://wiki.qhimm.com/FF7/Field/Script/Opcodes/EA_MPPAL2

At least this describes how it works on MD1_1 =D

Can someone tell me where RTPAL is used?

6
Q-Gears / Q-Gears v0.19
« on: 2011-06-06 18:50:46 »
New version just was released. Alpha of compleatly rewritten q-gears. Initial features like new console, new application structure and so on.

https://sourceforge.net/projects/q-gears/files/q-gears/

Console can be called by pressing ~
If you press any button and then press tab - console auto complete it with posible values
You can write LUA scripts directly to console
To load other map write "/map test_ffvii_2" to console or change initial load map in config.

7
Q-Gears / Current state.
« on: 2011-04-07 06:17:24 »
Project still not dead, and I still working on it.
Lately I tried few others Render Engines like crystal space and irrlicht to power up q-gears. Irrlicht seems more suitable. Now I try to port everything to it. Render looks like old http://sourceforge.net/projects/q-gears/files/qgears_ffvii/qgears_ffvii_0.13/ engine. It lacks of normal collada support but I implement it to be able to edit models in 3d editors like blender.

Now I work on GUI implementation. I found videos from Falsate who create very cool GUI remake of FFVII (http://www.youtube.com/user/Falsate#p/u/4/bKVKLPB8llo) and try to mate this things posible. This is very good Idea for Avalanche project too.

At the same time I reverse scripting system in FFIX. A lot of interesting Ideas there =)

8
For those who interested i finish first approach to FFIX scripts.

All opcodes in scene 0 (very first scene after intro movie) are parsed correctly.

Code: [Select]
ENTITY: entity_id = 0x00
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x015a    [ script + 0x0013 ] = b( b[ script + 0x0013 ] & 0x7f ); // 05 c5 9f 7d 00 00 2c 7f
0x0162    [ script + 0x0011 ] = b( 0x000000ff ); // 05 d5 11 7d ff 00 2c 7f
0x016a    [ 0x8007aef0 + 0x0017 ] = b( b[ 0x8007aef0 + 0x0017 ] & 0x7f ); // 05 c4 bf 7d 00 00 2c 7f
0x0172    JumpIf( ( (bu[ 0x8007aef0 + 0x0017 ] >> 0x00) & 1 == 0x00000001 ) == false )To( 0x0185 ); // 05 c4 b8 7d 01 00 20 7f 02 08 00
0x017d    [ 0x8007aef0 + 0x0002 ] = h( 0x00002710 ); // 05 d8 02 7d 10 27 2c 7f
0x0185    [ 0x8007aef0 + 0x0017 ] = b( b[ 0x8007aef0 + 0x0017 ] & 0xfe ); // 05 c4 b8 7d 00 00 2c 7f
0x018d    [ 0x8007aef0 + 0x0009 ] = h( 0x00000283 ); // 05 d8 09 7d 83 02 2c 7f
0x0195    JumpIf( ( bu[ 0x8007aef0 + 0x000d ] == 0x00000009 ) == false )To( 0x01a3 ); // 05 d4 0d 7d 09 00 20 7f 02 03 00
0x01a0    JumpTo( 0x01de ); // 01 3b 00
0x01a3    JumpIf( ( ( bu[ 0x8007aef0 + 0x000d ] == 0x00000002 ) && ( h[ 0x8007aef0 + 0x0009 ] < 0x00000000 ) ) == false )To( 0x01c0 ); // 05 d4 0d 7d 02 00 20 d8 09 7d 00 00 18 27 7f 02 0b 00
0x01b5    [ 0x8007aef0 + 0x000d ] = b( 0x00000009 ); // 05 d4 0d 7d 09 00 2c 7f
0x01bd    JumpTo( 0x01de ); // 01 1e 00
0x01c0    JumpIf( ( h[ 0x8007aef0 + 0x0009 ] < 0x00000000 ) == false )To( 0x01d6 ); // 05 d8 09 7d 00 00 18 7f 02 0b 00
0x01cb    [ 0x8007aef0 + 0x000d ] = b( 0x00000000 ); // 05 d4 0d 7d 00 00 2c 7f
0x01d3    JumpTo( 0x01de ); // 01 08 00
0x01d6    [ 0x8007aef0 + 0x000d ] = b( 0x00000001 ); // 05 d4 0d 7d 01 00 2c 7f
0x01de    [ 0x8007aef0 + 0x000b ] = h( 0x0000ffff ); // 05 d8 0b 7d ff ff 2c 7f
0x01e6    JumpIf( ( bu[ 0x8007aef0 + 0x000e ] == 0x00000009 ) == false )To( 0x01f4 ); // 05 d4 0e 7d 09 00 20 7f 02 03 00
0x01f1    JumpTo( 0x022f ); // 01 3b 00
0x01f4    JumpIf( ( ( bu[ 0x8007aef0 + 0x000e ] == 0x00000002 ) && ( h[ 0x8007aef0 + 0x000b ] < 0x00000000 ) ) == false )To( 0x0211 ); // 05 d4 0e 7d 02 00 20 d8 0b 7d 00 00 18 27 7f 02 0b 00
0x0206    [ 0x8007aef0 + 0x000e ] = b( 0x00000009 ); // 05 d4 0e 7d 09 00 2c 7f
0x020e    JumpTo( 0x022f ); // 01 1e 00
0x0211    JumpIf( ( h[ 0x8007aef0 + 0x000b ] < 0x00000000 ) == false )To( 0x0227 ); // 05 d8 0b 7d 00 00 18 7f 02 0b 00
0x021c    [ 0x8007aef0 + 0x000e ] = b( 0x00000000 ); // 05 d4 0e 7d 00 00 2c 7f
0x0224    JumpTo( 0x022f ); // 01 08 00
0x0227    [ 0x8007aef0 + 0x000e ] = b( 0x00000001 ); // 05 d4 0e 7d 01 00 2c 7f
0x022f    Set16e8and16ea( 0x00, 0x00 ); // 67 00 00 00
0x0233    InitScriptEntity( entity_id = 0x02, shared_id = 0x00 ); // 07 02 00
0x0236    InitScriptEntity( entity_id = 0x03, shared_id = 0x00 ); // 07 03 00
0x0239    Set8007bbd8( 0x00 ); // e3 00 00
0x023c    InitModelEntity( entity_id = 0x11, shared_id = 0x00 ); // 09 11 00
0x023f    InitModelEntity( entity_id = 0x16, shared_id = 0x00 ); // 09 16 00
0x0242    InitModelEntity( entity_id = 0x18, shared_id = 0x00 ); // 09 18 00
0x0245    InitModelEntity( entity_id = 0x17, shared_id = 0x00 ); // 09 17 00
0x0248    InitModelEntity( entity_id = 0x0d, shared_id = 0x00 ); // 09 0d 00
0x024b    InitModelEntity( entity_id = 0x0f, shared_id = 0x00 ); // 09 0f 00
0x024e    InitType3Entity( entity_id = 0x04, shared_id = 0x00 ); // 08 04 00
0x0251    InitType3Entity( entity_id = 0x05, shared_id = 0x00 ); // 08 05 00
0x0254    InitType3Entity( entity_id = 0x06, shared_id = 0x00 ); // 08 06 00
0x0257    InitType3Entity( entity_id = 0x07, shared_id = 0x00 ); // 08 07 00
0x025a    InitScriptEntity( entity_id = 0x0b, shared_id = 0x00 ); // 07 0b 00
0x025d    InitScriptEntity( entity_id = 0x08, shared_id = 0x00 ); // 07 08 00
0x0260    InitScriptEntity( entity_id = 0x09, shared_id = 0x00 ); // 07 09 00
0x0263    InitScriptEntity( entity_id = 0x0a, shared_id = 0x00 ); // 07 0a 00
0x0266    InitScriptEntity( entity_id = 0x0c, shared_id = 0x00 ); // 07 0c 00
0x0269    Set8007bbe0_8007bbe8( 0x00 ); // ef 00 00
0x026c    Set16f8to1(); // 6a
0x026d    [ script + 0x0018 ] = b( 0x00000000 ); // 05 d5 18 7d 00 00 2c 7f
0x0275    JumpIf( ( (bu[ script + 0x0013 ] >> 0x06) & 1 == 0x00000000 ) == false )To( 0x0286 ); // 05 c5 9e 7d 00 00 20 7f 02 06 00
0x0280    Set800c9df1( 0x7f ); // 27 00 7f
0x0283    JumpTo( 0x0289 ); // 01 03 00
0x0286    Set800c9df1( 0xff ); // 27 00 ff
0x0289    Wait( 0x02 ); // 22 00 02
0x028c    Wait( 0x02 ); // 22 00 02
0x028f    JumpIf( ( bu[ 0x8007aef0 + 0x000d ] == 0x00000009 ) == false )To( 0x02b1 ); // 05 d4 0d 7d 09 00 20 7f 02 17 00
0x029a    Set8007bba8( 0x02, 0x0000 ); // 66 00 02 00 00
0x029f    0x20Async( 0x06, 0x00, 0x0003 ); // 20 00 06 00 03 00
0x02a5    0x8e(); // 8e
0x02a6    0x54( 0x06 ); // 54 00 06
0x02a9    [ 0x8007aef0 + 0x000d ] = b( 0x00000000 ); // 05 d4 0d 7d 00 00 2c 7f
0x02b1    JumpIf( ( bu[ 0x8007aef0 + 0x000e ] == 0x00000009 ) == false )To( 0x02d3 ); // 05 d4 0e 7d 09 00 20 7f 02 17 00
0x02bc    Set8007bba8( 0x02, 0x0001 ); // 66 00 02 01 00
0x02c1    0x20Async( 0x06, 0x00, 0x0003 ); // 20 00 06 00 03 00
0x02c7    0x8e(); // 8e
0x02c8    0x54( 0x06 ); // 54 00 06
0x02cb    [ 0x8007aef0 + 0x000e ] = b( 0x00000000 ); // 05 d4 0e 7d 00 00 2c 7f
0x02d3    [ script + 0x0013 ] = b( b[ script + 0x0013 ] | 0x80 ); // 05 c5 9f 7d 01 00 2c 7f
0x02db    JumpIf( ( (bu[ script + 0x0013 ] >> 0x06) & 1 == 0x00000001 ) == false )To( 0x0314 ); // 05 c5 9e 7d 01 00 20 7f 02 2e 00
0x02e6    [ script + 0x0013 ] = b( b[ script + 0x0013 ] | 0x40 ); // 05 c5 9e 7d 01 00 2c 7f
0x02ee    JumpIf( ( (bu[ script + 0x0013 ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0314 ); // 05 c5 9f 7d 01 00 20 7f 02 1b 00
0x02f9    JumpIf( ( (bu[ script + 0x0013 ] >> 0x04) & 1 == 0x00000000 ) == false )To( 0x0314 ); // 05 c5 9c 7d 00 00 20 7f 02 10 00
0x0304    0x2e(); // 2e
0x0305    Set800c9df1( 0xff ); // 27 00 ff
0x0308    JumpIf( ( (bu[ script + 0x0012 ] >> 0x00) & 1 == 0x00000000 ) == false )To( 0x0314 ); // 05 c5 90 7d 00 00 20 7f 02 01 00
0x0313    [80073998] = w(w[80073998] & fffbffff); // aa
0x0314    JumpIf( ( bu[ script + 0x0011 ] == 0x000000ff ) == false )To( 0x032e ); // 05 d5 11 7d ff 00 20 7f 02 0f 00
0x031f    GetRotationBy( ( 0x000000a0 - w[8007ae2c] ), ( 0x00000070 - w[8007ae30] ) ); // 05 7a 0c 7d a0 00 15 7a 0d 7d 70 00 15 66 7f
0x032e    Set8007ae2cAnd8007ae30WithScreenXYForEntity( 0xfa ); // a9 00 fa
0x0331    0xec( 0x07, 0x10, bu[ script + 0x0011 ], 0x00, 0x00, 0x00 ); // ec 04 07 10 d5 11 7f 00 00 00
0x033b    JumpIf( ( bu[ 0x8007aef0 + 0x000d ] < 0x00000009 ) == false )To( 0x034e ); // 05 d4 0d 7d 09 00 18 7f 02 08 00
0x0346    [ 0x8007aef0 + 0x000d ] = b( 0x00000002 ); // 05 d4 0d 7d 02 00 2c 7f
0x034e    CallDynamic8006794c_1c_83c( 0xd080, 0x0283, 0x000000, 0x80, 0x00 ); // c8 00 80 d0 83 02 00 00 00 80 00
0x0359    CallDynamic8006794c_1c_83c( 0xd381, 0x0283, 0x000000, 0x80, 0x00 ); // c8 00 81 d3 83 02 00 00 00 80 00
0x0364    CallDynamic8006794c_1c_83c( 0xd381, 0x0283, 0x000000, 0x96, 0x7d ); // c8 00 81 d3 83 02 00 00 00 96 7d
0x036f    Return(); // 04

SCRIPT: script_id = 0x0a
script = w[8007aecc];
0x0370    [ script + 0x0013 ] = b( b[ script + 0x0013 ] & 0x7f ); // 05 c5 9f 7d 00 00 2c 7f
0x0378    RunScriptAsync( priority = 0x00, entity_id = 0xfa, script_id = 0x0b ); // 10 00 00 fa 0b
0x037d    JumpIf( ( (bu[ script + 0x0013 ] >> 0x03) & 1 == 0x00000001 ) == false )To( 0x038b ); // 05 c5 9b 7d 01 00 20 7f 02 03 00
0x0388    Set8007bc14to0x2cIfValueEqual8007bc10( 0x01 ); // d7 00 01
0x038b    CallFuncc0df4( 0x00ff, 0x00b3, 0x01, 0x08 ); // 6f 00 ff 00 b3 00 01 08
0x0393    CallFuncafac0( 0x01, 0x82, 0x002a, 0x0000, 0x0000 ); // b3 00 01 82 2a 00 00 00 00 00
0x039d    CallFuncafac0( 0x01, 0x87, 0xfff4, 0xfe43, 0x00b4 ); // b3 00 01 87 f4 ff 43 fe b4 00
0x03a7    CallFuncafac0( 0x01, 0x8c, 0x0000, 0x0000, 0x0000 ); // b3 00 01 8c 00 00 00 00 00 00
0x03b1    CallFuncafac0( 0x01, 0x91, 0x03a8, 0x0000, 0x0000 ); // b3 00 01 91 a8 03 00 00 00 00
0x03bb    CallFuncafac0( 0x01, 0x9b, 0x0080, 0x0000, 0x0000 ); // b3 00 01 9b 80 00 00 00 00 00
0x03c5    CallFuncafac0( 0x01, 0xa0, 0x0010, 0x0000, 0x0000 ); // b3 00 01 a0 10 00 00 00 00 00
0x03cf    CallFuncafac0( 0x01, 0xaa, 0x0000, 0x0000, 0x0000 ); // b3 00 01 aa 00 00 00 00 00 00
0x03d9    CallFuncafac0( 0x01, 0x9c, 0x0001, 0x0000, 0x0000 ); // b3 00 01 9c 01 00 00 00 00 00
0x03e3    CallFuncc142c( 0x11, 0x00 ); // 5b 00 11 00
0x03e7    JumpIf( ( (bu[ script + 0x0013 ] >> 0x06) & 1 == 0x00000000 ) == false )To( 0x03f8 ); // 05 c5 9e 7d 00 00 20 7f 02 06 00
0x03f2    Set800c9df1( 0x7f ); // 27 00 7f
0x03f5    JumpTo( 0x03fb ); // 01 03 00
0x03f8    Set800c9df1( 0xff ); // 27 00 ff
0x03fb    Wait( 0x02 ); // 22 00 02
0x03fe    Wait( 0x02 ); // 22 00 02
0x0401    JumpIf( ( bu[ 0x8007aef0 + 0x000d ] == 0x00000009 ) == false )To( 0x0423 ); // 05 d4 0d 7d 09 00 20 7f 02 17 00
0x040c    Set8007bba8( 0x02, 0x0000 ); // 66 00 02 00 00
0x0411    0x20Async( 0x06, 0x00, 0x0003 ); // 20 00 06 00 03 00
0x0417    0x8e(); // 8e
0x0418    0x54( 0x06 ); // 54 00 06
0x041b    [ 0x8007aef0 + 0x000d ] = b( 0x00000000 ); // 05 d4 0d 7d 00 00 2c 7f
0x0423    JumpIf( ( bu[ 0x8007aef0 + 0x000e ] == 0x00000009 ) == false )To( 0x0445 ); // 05 d4 0e 7d 09 00 20 7f 02 17 00
0x042e    Set8007bba8( 0x02, 0x0001 ); // 66 00 02 01 00
0x0433    0x20Async( 0x06, 0x00, 0x0003 ); // 20 00 06 00 03 00
0x0439    0x8e(); // 8e
0x043a    0x54( 0x06 ); // 54 00 06
0x043d    [ 0x8007aef0 + 0x000e ] = b( 0x00000000 ); // 05 d4 0e 7d 00 00 2c 7f
0x0445    [ script + 0x0013 ] = b( b[ script + 0x0013 ] | 0x80 ); // 05 c5 9f 7d 01 00 2c 7f
0x044d    JumpIf( ( (bu[ script + 0x0013 ] >> 0x06) & 1 == 0x00000001 ) == false )To( 0x0486 ); // 05 c5 9e 7d 01 00 20 7f 02 2e 00
0x0458    [ script + 0x0013 ] = b( b[ script + 0x0013 ] | 0x40 ); // 05 c5 9e 7d 01 00 2c 7f
0x0460    JumpIf( ( (bu[ script + 0x0013 ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0486 ); // 05 c5 9f 7d 01 00 20 7f 02 1b 00
0x046b    JumpIf( ( (bu[ script + 0x0013 ] >> 0x04) & 1 == 0x00000000 ) == false )To( 0x0486 ); // 05 c5 9c 7d 00 00 20 7f 02 10 00
0x0476    0x2e(); // 2e
0x0477    Set800c9df1( 0xff ); // 27 00 ff
0x047a    JumpIf( ( (bu[ script + 0x0012 ] >> 0x00) & 1 == 0x00000000 ) == false )To( 0x0486 ); // 05 c5 90 7d 00 00 20 7f 02 01 00
0x0485    [80073998] = w(w[80073998] & fffbffff); // aa
0x0486    Return(); // 04




ENTITY: entity_id = 0x01
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x0492    CallFuncafac0( 0x00, 0x82, 0x002b, 0x0000, 0x0000 ); // b3 00 00 82 2b 00 00 00 00 00
0x049c    CallFuncafac0( 0x00, 0x96, 0x11, 0x000c, 0x0000 ); // da 00 00 96 11 0c 00 00 00
0x04a5    CallFuncafac0( 0x00, 0x8c, 0x0000, 0x0000, 0x0000 ); // b3 00 00 8c 00 00 00 00 00 00
0x04af    CallFuncafac0( 0x00, 0x91, 0x05d7, 0x0000, 0x0000 ); // b3 00 00 91 d7 05 00 00 00 00
0x04b9    CallFuncafac0( 0x00, 0x9b, 0x00ff, 0x0000, 0x0000 ); // b3 00 00 9b ff 00 00 00 00 00
0x04c3    CallFuncafac0( 0x00, 0xa0, 0x0010, 0x0000, 0x0000 ); // b3 00 00 a0 10 00 00 00 00 00
0x04cd    CallFuncafac0( 0x00, 0xaa, 0x0000, 0x0000, 0x0000 ); // b3 00 00 aa 00 00 00 00 00 00
0x04d7    CallFuncafac0( 0x00, 0x9c, 0x0001, 0x0000, 0x0000 ); // b3 00 00 9c 01 00 00 00 00 00
0x04e1    Return(); // 04

SCRIPT: script_id = 0x01
script = w[8007aecc];
0x04e2    JumpSwitch( ( GetYRotationFromEntity( 0xfa ) >> 0x00000005 ) )( case 0x0000: jump_to:0x0501)( case 0x0001: jump_to:0x050e)( case 0x0002: jump_to:0x051b)( case 0x0003: jump_to:0x0528)( case 0x0004: jump_to:0x0535)( case 0x0005: jump_to:0x0542)( case 0x0006: jump_to:0x054f)( case 0x0007: jump_to:0x055c)( default: jump_to:0x0569); // 05 78 fa 03 7d 05 00 17 7f 0b 08 00 00 7d 00 15 00 22 00 2f 00 3c 00 49 00 56 00 63 00 70 00
0x0501    CallFuncafac0( 0x00, 0xa5, 0x001e, 0xffe2, 0x0000 ); // b3 00 00 a5 1e 00 e2 ff 00 00
0x050b    JumpTo( 0x0569 ); // 01 5b 00
0x050e    CallFuncafac0( 0x00, 0xa5, 0x0019, 0xffe2, 0xffd3 ); // b3 00 00 a5 19 00 e2 ff d3 ff
0x0518    JumpTo( 0x0569 ); // 01 4e 00
0x051b    CallFuncafac0( 0x00, 0xa5, 0xffec, 0xffe2, 0xffe2 ); // b3 00 00 a5 ec ff e2 ff e2 ff
0x0525    JumpTo( 0x0569 ); // 01 41 00
0x0528    CallFuncafac0( 0x00, 0xa5, 0xffe2, 0xffe2, 0x0000 ); // b3 00 00 a5 e2 ff e2 ff 00 00
0x0532    JumpTo( 0x0569 ); // 01 34 00
0x0535    CallFuncafac0( 0x00, 0xa5, 0xffe2, 0xffe2, 0x0000 ); // b3 00 00 a5 e2 ff e2 ff 00 00
0x053f    JumpTo( 0x0569 ); // 01 27 00
0x0542    CallFuncafac0( 0x00, 0xa5, 0x0000, 0xffe2, 0x0023 ); // b3 00 00 a5 00 00 e2 ff 23 00
0x054c    JumpTo( 0x0569 ); // 01 1a 00
0x054f    CallFuncafac0( 0x00, 0xa5, 0x0014, 0xffe2, 0x001e ); // b3 00 00 a5 14 00 e2 ff 1e 00
0x0559    JumpTo( 0x0569 ); // 01 0d 00
0x055c    CallFuncafac0( 0x00, 0xa5, 0x0019, 0xffe2, 0x0014 ); // b3 00 00 a5 19 00 e2 ff 14 00
0x0566    JumpTo( 0x0569 ); // 01 00 00
0x0569    Wait( 0x01 ); // 22 00 01
0x056c    JumpTo( 0x04e2 ); // 01 73 ff




ENTITY: entity_id = 0x02
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x057a    Return(); // 04

SCRIPT: script_id = 0x01
script = w[8007aecc];
0x057b    JumpIf( bu[ script + 0x001e ] == false )To( 0x063b ); // 05 d5 1e 7f 02 b9 00
0x0582    CallFuncc1368( 0x10, bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ] ); // 59 0e 10 d6 00 7f d6 00 7f d6 00 7f
0x058e    CallFuncc1368( 0x1a, bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ] ); // 59 0e 1a d6 00 7f d6 00 7f d6 00 7f
0x059a    Wait( 0x01 ); // 22 00 01
0x059d    CallFuncc1368( 0x10, bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ] ); // 59 0e 10 d6 00 7f d6 00 7f d6 00 7f
0x05a9    CallFuncc1368( 0x1a, bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ] ); // 59 0e 1a d6 00 7f d6 00 7f d6 00 7f
0x05b5    CallFuncc142c( 0x10, 0x01 ); // 5b 00 10 01
0x05b9    CallFuncc142c( 0x1a, 0x01 ); // 5b 00 1a 01
0x05bd    [ w[ 0x8007bcf8 ] + 0x0000 ] = b( 0x00000000 ); // 05 d6 00 7d 00 00 2c 7f
0x05c5    JumpTo( 0x05eb ); // 01 23 00
0x05c8    CallFuncc1368( 0x10, bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ] ); // 59 0e 10 d6 00 7f d6 00 7f d6 00 7f
0x05d4    CallFuncc1368( 0x1a, bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ] ); // 59 0e 1a d6 00 7f d6 00 7f d6 00 7f
0x05e0    Wait( 0x01 ); // 22 00 01
0x05e3    ( bu[ w[ 0x8007bcf8 ] + 0x0000 ] += 0x00000002 ); // 05 d6 00 7d 02 00 32 7f
0x05eb    JumpIf( ( bu[ w[ 0x8007bcf8 ] + 0x0000 ] < 0x000000a4 ) == true )To( 0x05c8 ); // 05 d6 00 7d a4 00 18 7f 03 d2 ff
0x05f6    JumpTo( 0x0633 ); // 01 3a 00
0x05f9    [ w[ 0x8007bcf8 ] + 0x0001 ] = b( ( 0x00000001 + bu[ w[ 0x8007bcf8 ] + 0x0001 ] ) ); // 05 d6 01 d6 01 7d 01 00 14 2c 7f
0x0604    [ w[ 0x8007bcf8 ] + 0x0000 ] = b( ( 0x000000a4 + ( 0x00000168 / GetSinByRotation( ( bu[ w[ 0x8007bcf8 ] + 0x0001 ] << 0x00000002 ) ) ) ) ); // 05 d6 00 d6 01 7d 02 00 16 62 7d 68 01 12 7d a4 00 14 2c 7f
0x0618    CallFuncc1368( 0x10, bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ] ); // 59 0e 10 d6 00 7f d6 00 7f d6 00 7f
0x0624    CallFuncc1368( 0x1a, bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ], bu[ w[ 0x8007bcf8 ] + 0x0000 ] ); // 59 0e 1a d6 00 7f d6 00 7f d6 00 7f
0x0630    Wait( 0x01 ); // 22 00 01
0x0633    JumpIf( 0x00000001 == true )To( 0x05f9 ); // 05 7d 01 00 7f 03 be ff
0x063b    Wait( 0x01 ); // 22 00 01
0x063e    JumpTo( 0x057b ); // 01 3a ff




ENTITY: entity_id = 0x03
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x064e    Return(); // 04

SCRIPT: script_id = 0x01
script = w[8007aecc];
0x064f    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0xbf ); // 05 c5 e6 7d 00 00 2c 7f
0x0657    JumpSwitch( bu[ script + 0x0018 ] )( case 0x0000: jump_to:0x0681)( case 0x0001: jump_to:0x069f)( case 0x0002: jump_to:0x06bd)( case 0x0003: jump_to:0x06db)( case 0x0004: jump_to:0x06f9)( case 0x0005: jump_to:0x0717)( case 0x0006: jump_to:0x0735)( case 0x0007: jump_to:0x0753)( case 0x0008: jump_to:0x0771)( case 0x0009: jump_to:0x078f)( case 0x000a: jump_to:0x07ad)( case 0x000b: jump_to:0x07cb)( case 0x000c: jump_to:0x07e9)( case 0x000d: jump_to:0x0807)( case 0x000e: jump_to:0x0825)( case 0x000f: jump_to:0x0843)( default: jump_to:0x0861); // 05 d5 18 7f 0b 10 00 00 05 02 25 00 43 00 61 00 7f 00 9d 00 bb 00 d9 00 f7 00 15 01 33 01 51 01 6f 01 8d 01 ab 01 c9 01 e7 01
0x0681    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x069c ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x068c    [ script + 0x0018 ] = b( 0x00000001 ); // 05 d5 18 7d 01 00 2c 7f
0x0694    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x069c    JumpTo( 0x0861 ); // 01 c2 01
0x069f    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x06ba ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x06aa    [ script + 0x0018 ] = b( 0x00000002 ); // 05 d5 18 7d 02 00 2c 7f
0x06b2    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x06ba    JumpTo( 0x0861 ); // 01 a4 01
0x06bd    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x06d8 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x06c8    [ script + 0x0018 ] = b( 0x00000003 ); // 05 d5 18 7d 03 00 2c 7f
0x06d0    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x06d8    JumpTo( 0x0861 ); // 01 86 01
0x06db    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x06f6 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x06e6    [ script + 0x0018 ] = b( 0x00000004 ); // 05 d5 18 7d 04 00 2c 7f
0x06ee    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x06f6    JumpTo( 0x0861 ); // 01 68 01
0x06f9    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0714 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x0704    [ script + 0x0018 ] = b( 0x00000005 ); // 05 d5 18 7d 05 00 2c 7f
0x070c    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x0714    JumpTo( 0x0861 ); // 01 4a 01
0x0717    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0732 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x0722    [ script + 0x0018 ] = b( 0x00000006 ); // 05 d5 18 7d 06 00 2c 7f
0x072a    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x0732    JumpTo( 0x0861 ); // 01 2c 01
0x0735    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0750 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x0740    [ script + 0x0018 ] = b( 0x00000007 ); // 05 d5 18 7d 07 00 2c 7f
0x0748    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x0750    JumpTo( 0x0861 ); // 01 0e 01
0x0753    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x076e ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x075e    [ script + 0x0018 ] = b( 0x00000008 ); // 05 d5 18 7d 08 00 2c 7f
0x0766    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x076e    JumpTo( 0x0861 ); // 01 f0 00
0x0771    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x078c ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x077c    [ script + 0x0018 ] = b( 0x00000009 ); // 05 d5 18 7d 09 00 2c 7f
0x0784    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x078c    JumpTo( 0x0861 ); // 01 d2 00
0x078f    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x07aa ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x079a    [ script + 0x0018 ] = b( 0x0000000a ); // 05 d5 18 7d 0a 00 2c 7f
0x07a2    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x07aa    JumpTo( 0x0861 ); // 01 b4 00
0x07ad    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x07c8 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x07b8    [ script + 0x0018 ] = b( 0x0000000b ); // 05 d5 18 7d 0b 00 2c 7f
0x07c0    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x07c8    JumpTo( 0x0861 ); // 01 96 00
0x07cb    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x07e6 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x07d6    [ script + 0x0018 ] = b( 0x0000000c ); // 05 d5 18 7d 0c 00 2c 7f
0x07de    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x07e6    JumpTo( 0x0861 ); // 01 78 00
0x07e9    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0804 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x07f4    [ script + 0x0018 ] = b( 0x0000000d ); // 05 d5 18 7d 0d 00 2c 7f
0x07fc    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x0804    JumpTo( 0x0861 ); // 01 5a 00
0x0807    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0822 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x0812    [ script + 0x0018 ] = b( 0x0000000e ); // 05 d5 18 7d 0e 00 2c 7f
0x081a    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x0822    JumpTo( 0x0861 ); // 01 3c 00
0x0825    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0840 ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x0830    [ script + 0x0018 ] = b( 0x0000000f ); // 05 d5 18 7d 0f 00 2c 7f
0x0838    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x0840    JumpTo( 0x0861 ); // 01 1e 00
0x0843    JumpIf( ( (bu[ script + 0x001c ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x085e ); // 05 c5 e7 7d 01 00 20 7f 02 10 00
0x084e    [ script + 0x0018 ] = b( 0x00000010 ); // 05 d5 18 7d 10 00 2c 7f
0x0856    [ script + 0x001c ] = b( b[ script + 0x001c ] & 0x7f ); // 05 c5 e7 7d 00 00 2c 7f
0x085e    JumpTo( 0x0861 ); // 01 00 00
0x0861    Wait( 0x01 ); // 22 00 01
0x0864    JumpTo( 0x064f ); // 01 e8 fd




ENTITY: entity_id = 0x04
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x0872    SetDataForType3Entity( number = 04, 0x0000, 0x015e, 0x00d2, 0x0078, 0x012c, 0x015e, 0x00d2, 0x028a ); // 29 00 04 00 00 5e 01 d2 00 78 00 2c 01 5e 01 d2 00 8a 02
0x0885    Return(); // 04

SCRIPT: script_id = 0x02
script = w[8007aecc];
0x0886    JumpIf( bu[script + 16ec] == true )To( 0x088e ); // 05 7a 02 7f 03 01 00
0x088d    Return(); // 04
0x088e    [ script + 0x0026 ] = b( 0x00000001 ); // 05 d5 26 7d 01 00 2c 7f
0x0896    JumpIf( ( ( bu[ script + 0x002a ] == 0x00000001 ) && ( bu[script + 16ec] == 0x00000001 ) ) == false )To( 0x08b6 ); // 05 d5 2a 7d 01 00 20 7a 02 7d 01 00 20 27 7f 02 0e 00
0x08a8    [ script + 0x002a ] = b( 0x00000002 ); // 05 d5 2a 7d 02 00 2c 7f
0x08b0    0x20Async( 0x01, 0x10, 0x0026 ); // 20 00 01 10 26 00
0x08b6    JumpIf( ( bu[ script + 0x0018 ] < 0x00000002 ) == false )To( 0x08c4 ); // 05 d5 18 7d 02 00 18 7f 02 03 00
0x08c1    Set8007bbf4( 0x00 ); // 68 00 00
0x08c4    Return(); // 04




ENTITY: entity_id = 0x05
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x08d2    SetDataForType3Entity( number = 04, 0x0000, 0x015e, 0xff2e, 0x0078, 0xfed4, 0x015e, 0xff2e, 0x028a ); // 29 00 04 00 00 5e 01 2e ff 78 00 d4 fe 5e 01 2e ff 8a 02
0x08e5    Return(); // 04

SCRIPT: script_id = 0x02
script = w[8007aecc];
0x08e6    JumpIf( bu[script + 16ec] == true )To( 0x08ee ); // 05 7a 02 7f 03 01 00
0x08ed    Return(); // 04
0x08ee    [ script + 0x0026 ] = b( 0x00000001 ); // 05 d5 26 7d 01 00 2c 7f
0x08f6    JumpIf( ( ( bu[ script + 0x002a ] == 0x00000001 ) && ( bu[script + 16ec] == 0x00000001 ) ) == false )To( 0x0916 ); // 05 d5 2a 7d 01 00 20 7a 02 7d 01 00 20 27 7f 02 0e 00
0x0908    [ script + 0x002a ] = b( 0x00000002 ); // 05 d5 2a 7d 02 00 2c 7f
0x0910    0x20Async( 0x01, 0x10, 0x0026 ); // 20 00 01 10 26 00
0x0916    JumpIf( ( bu[ script + 0x0018 ] < 0x00000002 ) == false )To( 0x0924 ); // 05 d5 18 7d 02 00 18 7f 02 03 00
0x0921    Set8007bbf4( 0x00 ); // 68 00 00
0x0924    Return(); // 04




ENTITY: entity_id = 0x06
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x0932    SetDataForType3Entity( number = 03, 0x0000, 0x015e, 0x00d2, 0x028a, 0xff2e, 0x028a ); // 29 00 03 00 00 5e 01 d2 00 8a 02 2e ff 8a 02
0x0941    Return(); // 04

SCRIPT: script_id = 0x02
script = w[8007aecc];
0x0942    JumpIf( bu[script + 16ec] == true )To( 0x094a ); // 05 7a 02 7f 03 01 00
0x0949    Return(); // 04
0x094a    [ script + 0x0026 ] = b( 0x00000001 ); // 05 d5 26 7d 01 00 2c 7f
0x0952    JumpIf( ( ( bu[ script + 0x002a ] == 0x00000001 ) && ( bu[script + 16ec] == 0x00000001 ) ) == false )To( 0x0972 ); // 05 d5 2a 7d 01 00 20 7a 02 7d 01 00 20 27 7f 02 0e 00
0x0964    [ script + 0x002a ] = b( 0x00000002 ); // 05 d5 2a 7d 02 00 2c 7f
0x096c    0x20Async( 0x01, 0x10, 0x0026 ); // 20 00 01 10 26 00
0x0972    JumpIf( ( bu[ script + 0x0018 ] < 0x00000002 ) == false )To( 0x0980 ); // 05 d5 18 7d 02 00 18 7f 02 03 00
0x097d    Set8007bbf4( 0x00 ); // 68 00 00
0x0980    Return(); // 04




ENTITY: entity_id = 0x07
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x098e    SetDataForType3Entity( number = 03, 0x0000, 0x015e, 0xff2e, 0x0078, 0x00d2, 0x0078 ); // 29 00 03 00 00 5e 01 2e ff 78 00 d2 00 78 00
0x099d    Return(); // 04

SCRIPT: script_id = 0x02
script = w[8007aecc];
0x099e    JumpIf( bu[script + 16ec] == true )To( 0x09a6 ); // 05 7a 02 7f 03 01 00
0x09a5    Return(); // 04
0x09a6    [ script + 0x0026 ] = b( 0x00000001 ); // 05 d5 26 7d 01 00 2c 7f
0x09ae    JumpIf( ( ( bu[ script + 0x002a ] == 0x00000001 ) && ( bu[script + 16ec] == 0x00000001 ) ) == false )To( 0x09ce ); // 05 d5 2a 7d 01 00 20 7a 02 7d 01 00 20 27 7f 02 0e 00
0x09c0    [ script + 0x002a ] = b( 0x00000002 ); // 05 d5 2a 7d 02 00 2c 7f
0x09c8    0x20Async( 0x01, 0x10, 0x0026 ); // 20 00 01 10 26 00
0x09ce    JumpIf( ( bu[ script + 0x0018 ] < 0x00000002 ) == false )To( 0x09dc ); // 05 d5 18 7d 02 00 18 7f 02 03 00
0x09d9    Set8007bbf4( 0x00 ); // 68 00 00
0x09dc    Return(); // 04




ENTITY: entity_id = 0x08
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x09ea    Return(); // 04

SCRIPT: script_id = 0x01
script = w[8007aecc];
0x09eb    JumpIf( ( ( ( bu[script + 16ec] == 0x00000001 ) && ( (bu[ 0x8007aef0 + 0x0000 ] >> 0x07) & 1 == 0x00000000 ) ) && ( (bu[ script + 0x0012 ] >> 0x01) & 1 == 0x00000000 ) ) == false )To( 0x0af7 ); // 05 7a 02 7d 01 00 20 e4 07 1c 7d 00 00 20 27 c5 91 7d 00 00 20 27 7f 02 f2 00
0x0a05    [ w[ 0x8007bcf8 ] + 0x0000 ] = b3( ( 0x00000010 / ( ( ( 0x00000008 / ( 0x000006a4 - GetZPositionFromEntity( 0xfa ) ) ) * ( 0x00000008 / ( 0x000006a4 - GetZPositionFromEntity( 0xfa ) ) ) ) + ( ( 0x00000008 / ( 0x00000258 - GetXPositionFromEntity( 0xfa ) ) ) * ( 0x00000008 / ( 0x00000258 - GetXPositionFromEntity( 0xfa ) ) ) ) ) ) ); // 05 ca 00 78 fa 00 7d 58 02 15 7d 08 00 12 78 fa 00 7d 58 02 15 7d 08 00 12 11 78 fa 02 7d a4 06 15 7d 08 00 12 78 fa 02 7d a4 06 15 7d 08 00 12 11 14 7d 10 00 12 2c 7f
0x0a3d    JumpIf( ( ( b3[ w[ 0x8007bcf8 ] + 0x0000 ] < 0x00000037 ) && ( ( GetYPositionFromEntity( 0xfa ) > 0x0000feca ) && ( GetYPositionFromEntity( 0xfa ) < 0x00000122 ) ) ) == false )To( 0x0af7 ); // 05 ca 00 7d 37 00 18 78 fa 01 7d ca fe 19 78 fa 01 7d 22 01 18 27 27 7f 02 9f 00
0x0a58    Set8007bbf4( 0x01 ); // 68 00 01
0x0a5b    JumpIf( IsButtonPressed( 0x000a0000 ) == false )To( 0x0af7 ); // 05 7e 00 00 0a 00 4f 7f 02 91 00
0x0a66    [ script + 0x0013 ] = b( b[ script + 0x0013 ] & 0xbf ); // 05 c5 9e 7d 00 00 2c 7f
0x0a6e    JumpIf( ( (bu[ script + 0x0013 ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0a8c ); // 05 c5 9f 7d 01 00 20 7f 02 13 00
0x0a79    0x2d(); // 2d
0x0a7a    JumpIf( ( (bu[ script + 0x0012 ] >> 0x00) & 1 == 0x00000000 ) == false )To( 0x0a89 ); // 05 c5 90 7d 00 00 20 7f 02 04 00
0x0a85    [80073998] = w(w[80073998] | 00040000); // ab
0x0a86    JumpTo( 0x0a8c ); // 01 03 00
0x0a89    Wait( 0x01 ); // 22 00 01
0x0a8c    Set800c9df1( 0x7f ); // 27 00 7f
0x0a8f    [ 0x8007aef0 + 0x00dc ] = h( 0x00000258 ); // 05 d8 dc 7d 58 02 2c 7f
0x0a97    [ 0x8007aef0 + 0x00de ] = h( 0x000006a4 ); // 05 d8 de 7d a4 06 2c 7f
0x0a9f    [ 0x8007aef0 + 0x00e2 ] = b( (bu[ 0x8007aef0 + 0x0000 ] >> 0x07) & 1 ); // 05 d4 e2 e4 07 1c 2c 7f
0x0aa7    [ 0x8007aef0 + 0x00e0 ] = h( 0x000000ec ); // 05 d8 e0 7d ec 00 2c 7f
0x0aaf    Set8007bba8( 0x00, 0x00ec ); // 66 00 00 ec 00
0x0ab4    RunScriptStartSync( priority = 0x02, entity_id = 0xfa, script_id = 0x0c ); // 14 00 02 fa 0c
0x0ab9    JumpIf( 0x00000001 == false )To( 0x0ac9 ); // 05 7d 01 00 7f 02 08 00
0x0ac1    [ 0x8007aef0 + 0x0000 ] = b( b[ 0x8007aef0 + 0x0000 ] | 0x80 ); // 05 e4 07 1c d4 e2 2c 7f
0x0ac9    [ script + 0x0013 ] = b( b[ script + 0x0013 ] | 0x40 ); // 05 c5 9e 7d 01 00 2c 7f
0x0ad1    JumpIf( ( (bu[ script + 0x0013 ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0af7 ); // 05 c5 9f 7d 01 00 20 7f 02 1b 00
0x0adc    JumpIf( ( (bu[ script + 0x0013 ] >> 0x04) & 1 == 0x00000000 ) == false )To( 0x0af7 ); // 05 c5 9c 7d 00 00 20 7f 02 10 00
0x0ae7    0x2e(); // 2e
0x0ae8    Set800c9df1( 0xff ); // 27 00 ff
0x0aeb    JumpIf( ( (bu[ script + 0x0012 ] >> 0x00) & 1 == 0x00000000 ) == false )To( 0x0af7 ); // 05 c5 90 7d 00 00 20 7f 02 01 00
0x0af6    [80073998] = w(w[80073998] & fffbffff); // aa
0x0af7    Wait( 0x01 ); // 22 00 01
0x0afa    JumpTo( 0x09eb ); // 01 ee fe




ENTITY: entity_id = 0x09
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x0b0a    Return(); // 04

SCRIPT: script_id = 0x01
script = w[8007aecc];
0x0b0b    JumpIf( ( ( ( bu[script + 16ec] == 0x00000001 ) && ( (bu[ 0x8007aef0 + 0x0000 ] >> 0x06) & 1 == 0x00000000 ) ) && ( (bu[ script + 0x0012 ] >> 0x01) & 1 == 0x00000000 ) ) == false )To( 0x0c17 ); // 05 7a 02 7d 01 00 20 e4 06 1c 7d 00 00 20 27 c5 91 7d 00 00 20 27 7f 02 f2 00
0x0b25    [ w[ 0x8007bcf8 ] + 0x0000 ] = b3( ( 0x00000010 / ( ( ( 0x00000008 / ( 0x00000640 - GetZPositionFromEntity( 0xfa ) ) ) * ( 0x00000008 / ( 0x00000640 - GetZPositionFromEntity( 0xfa ) ) ) ) + ( ( 0x00000008 / ( 0x0000fd44 - GetXPositionFromEntity( 0xfa ) ) ) * ( 0x00000008 / ( 0x0000fd44 - GetXPositionFromEntity( 0xfa ) ) ) ) ) ) ); // 05 ca 00 78 fa 00 7d 44 fd 15 7d 08 00 12 78 fa 00 7d 44 fd 15 7d 08 00 12 11 78 fa 02 7d 40 06 15 7d 08 00 12 78 fa 02 7d 40 06 15 7d 08 00 12 11 14 7d 10 00 12 2c 7f
0x0b5d    JumpIf( ( ( b3[ w[ 0x8007bcf8 ] + 0x0000 ] < 0x00000037 ) && ( ( GetYPositionFromEntity( 0xfa ) > 0x0000feca ) && ( GetYPositionFromEntity( 0xfa ) < 0x00000122 ) ) ) == false )To( 0x0c17 ); // 05 ca 00 7d 37 00 18 78 fa 01 7d ca fe 19 78 fa 01 7d 22 01 18 27 27 7f 02 9f 00
0x0b78    Set8007bbf4( 0x01 ); // 68 00 01
0x0b7b    JumpIf( IsButtonPressed( 0x000a0000 ) == false )To( 0x0c17 ); // 05 7e 00 00 0a 00 4f 7f 02 91 00
0x0b86    [ script + 0x0013 ] = b( b[ script + 0x0013 ] & 0xbf ); // 05 c5 9e 7d 00 00 2c 7f
0x0b8e    JumpIf( ( (bu[ script + 0x0013 ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0bac ); // 05 c5 9f 7d 01 00 20 7f 02 13 00
0x0b99    0x2d(); // 2d
0x0b9a    JumpIf( ( (bu[ script + 0x0012 ] >> 0x00) & 1 == 0x00000000 ) == false )To( 0x0ba9 ); // 05 c5 90 7d 00 00 20 7f 02 04 00
0x0ba5    [80073998] = w(w[80073998] | 00040000); // ab
0x0ba6    JumpTo( 0x0bac ); // 01 03 00
0x0ba9    Wait( 0x01 ); // 22 00 01
0x0bac    Set800c9df1( 0x7f ); // 27 00 7f
0x0baf    [ 0x8007aef0 + 0x00dc ] = h( 0x0000fd44 ); // 05 d8 dc 7d 44 fd 2c 7f
0x0bb7    [ 0x8007aef0 + 0x00de ] = h( 0x00000640 ); // 05 d8 de 7d 40 06 2c 7f
0x0bbf    [ 0x8007aef0 + 0x00e2 ] = b( (bu[ 0x8007aef0 + 0x0000 ] >> 0x06) & 1 ); // 05 d4 e2 e4 06 1c 2c 7f
0x0bc7    [ 0x8007aef0 + 0x00e0 ] = h( 0x00000417 ); // 05 d8 e0 7d 17 04 2c 7f
0x0bcf    Set8007bba8( 0x00, 0x0417 ); // 66 00 00 17 04
0x0bd4    RunScriptStartSync( priority = 0x02, entity_id = 0xfa, script_id = 0x0c ); // 14 00 02 fa 0c
0x0bd9    JumpIf( 0x00000001 == false )To( 0x0be9 ); // 05 7d 01 00 7f 02 08 00
0x0be1    [ 0x8007aef0 + 0x0000 ] = b( b[ 0x8007aef0 + 0x0000 ] | 0x40 ); // 05 e4 06 1c d4 e2 2c 7f
0x0be9    [ script + 0x0013 ] = b( b[ script + 0x0013 ] | 0x40 ); // 05 c5 9e 7d 01 00 2c 7f
0x0bf1    JumpIf( ( (bu[ script + 0x0013 ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0c17 ); // 05 c5 9f 7d 01 00 20 7f 02 1b 00
0x0bfc    JumpIf( ( (bu[ script + 0x0013 ] >> 0x04) & 1 == 0x00000000 ) == false )To( 0x0c17 ); // 05 c5 9c 7d 00 00 20 7f 02 10 00
0x0c07    0x2e(); // 2e
0x0c08    Set800c9df1( 0xff ); // 27 00 ff
0x0c0b    JumpIf( ( (bu[ script + 0x0012 ] >> 0x00) & 1 == 0x00000000 ) == false )To( 0x0c17 ); // 05 c5 90 7d 00 00 20 7f 02 01 00
0x0c16    [80073998] = w(w[80073998] & fffbffff); // aa
0x0c17    Wait( 0x01 ); // 22 00 01
0x0c1a    JumpTo( 0x0b0b ); // 01 ee fe




ENTITY: entity_id = 0x0a
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x0c2a    Return(); // 04

SCRIPT: script_id = 0x01
script = w[8007aecc];
0x0c2b    JumpIf( ( ( ( bu[script + 16ec] == 0x00000001 ) && ( bu[ w[ 0x8007bcf8 ] + 0x0003 ] == 0x00000000 ) ) && ( (bu[ script + 0x0012 ] >> 0x01) & 1 == 0x00000000 ) ) == false )To( 0x0d34 ); // 05 7a 02 7d 01 00 20 d6 03 7d 00 00 20 27 c5 91 7d 00 00 20 27 7f 02 f0 00
0x0c44    [ w[ 0x8007bcf8 ] + 0x0000 ] = b3( ( 0x00000010 / ( ( ( 0x00000008 / ( 0x00000427 - GetZPositionFromEntity( 0xfa ) ) ) * ( 0x00000008 / ( 0x00000427 - GetZPositionFromEntity( 0xfa ) ) ) ) + ( ( 0x00000008 / ( 0x000002b8 - GetXPositionFromEntity( 0xfa ) ) ) * ( 0x00000008 / ( 0x000002b8 - GetXPositionFromEntity( 0xfa ) ) ) ) ) ) ); // 05 ca 00 78 fa 00 7d b8 02 15 7d 08 00 12 78 fa 00 7d b8 02 15 7d 08 00 12 11 78 fa 02 7d 27 04 15 7d 08 00 12 78 fa 02 7d 27 04 15 7d 08 00 12 11 14 7d 10 00 12 2c 7f
0x0c7c    JumpIf( ( ( b3[ w[ 0x8007bcf8 ] + 0x0000 ] < 0x00000028 ) && ( ( GetYPositionFromEntity( 0xfa ) > 0x0000feb6 ) && ( GetYPositionFromEntity( 0xfa ) < 0x0000010e ) ) ) == false )To( 0x0d34 ); // 05 ca 00 7d 28 00 18 78 fa 01 7d b6 fe 19 78 fa 01 7d 0e 01 18 27 27 7f 02 9d 00
0x0c97    Set8007bbf4( 0x01 ); // 68 00 01
0x0c9a    JumpIf( IsButtonPressed( 0x000a0000 ) == false )To( 0x0d34 ); // 05 7e 00 00 0a 00 4f 7f 02 8f 00
0x0ca5    [ script + 0x0013 ] = b( b[ script + 0x0013 ] & 0xbf ); // 05 c5 9e 7d 00 00 2c 7f
0x0cad    JumpIf( ( (bu[ script + 0x0013 ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0ccb ); // 05 c5 9f 7d 01 00 20 7f 02 13 00
0x0cb8    0x2d(); // 2d
0x0cb9    JumpIf( ( (bu[ script + 0x0012 ] >> 0x00) & 1 == 0x00000000 ) == false )To( 0x0cc8 ); // 05 c5 90 7d 00 00 20 7f 02 04 00
0x0cc4    [80073998] = w(w[80073998] | 00040000); // ab
0x0cc5    JumpTo( 0x0ccb ); // 01 03 00
0x0cc8    Wait( 0x01 ); // 22 00 01
0x0ccb    Set800c9df1( 0x7f ); // 27 00 7f
0x0cce    [ 0x8007aef0 + 0x00dc ] = h( 0x000002b8 ); // 05 d8 dc 7d b8 02 2c 7f
0x0cd6    [ 0x8007aef0 + 0x00de ] = h( 0x00000427 ); // 05 d8 de 7d 27 04 2c 7f
0x0cde    [ 0x8007aef0 + 0x00e2 ] = b( bu[ w[ 0x8007bcf8 ] + 0x0003 ] ); // 05 d4 e2 d6 03 2c 7f
0x0ce5    [ 0x8007aef0 + 0x00e0 ] = h( 0x0000752f ); // 05 d8 e0 7d 2f 75 2c 7f
0x0ced    Set8007bba8( 0x00, 0x752f ); // 66 00 00 2f 75
0x0cf2    RunScriptStartSync( priority = 0x02, entity_id = 0xfa, script_id = 0x0d ); // 14 00 02 fa 0d
0x0cf7    JumpIf( 0x00000000 == false )To( 0x0d06 ); // 05 7d 00 00 7f 02 07 00
0x0cff    [ w[ 0x8007bcf8 ] + 0x0003 ] = b( bu[ 0x8007aef0 + 0x00e2 ] ); // 05 d6 03 d4 e2 2c 7f
0x0d06    [ script + 0x0013 ] = b( b[ script + 0x0013 ] | 0x40 ); // 05 c5 9e 7d 01 00 2c 7f
0x0d0e    JumpIf( ( (bu[ script + 0x0013 ] >> 0x07) & 1 == 0x00000001 ) == false )To( 0x0d34 ); // 05 c5 9f 7d 01 00 20 7f 02 1b 00
0x0d19    JumpIf( ( (bu[ script + 0x0013 ] >> 0x04) & 1 == 0x00000000 ) == false )To( 0x0d34 ); // 05 c5 9c 7d 00 00 20 7f 02 10 00
0x0d24    0x2e(); // 2e
0x0d25    Set800c9df1( 0xff ); // 27 00 ff
0x0d28    JumpIf( ( (bu[ script + 0x0012 ] >> 0x00) & 1 == 0x00000000 ) == false )To( 0x0d34 ); // 05 c5 90 7d 00 00 20 7f 02 01 00
0x0d33    [80073998] = w(w[80073998] & fffbffff); // aa
0x0d34    Wait( 0x01 ); // 22 00 01
0x0d37    JumpTo( 0x0c2b ); // 01 f1 fe




ENTITY: entity_id = 0x0b
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x0d46    [ script + 0x0022 ] = h( 0x00000020 ); // 05 dd 22 7d 20 00 2c 7f
0x0d4e    [ script + 0x0024 ] = h( 0x00000040 ); // 05 dd 24 7d 40 00 2c 7f
0x0d56    CallFuncc142c( 0x10, 0x00 ); // 5b 00 10 00
0x0d5a    CallFuncc142c( 0x1a, 0x00 ); // 5b 00 1a 00
0x0d5e    Return(); // 04

SCRIPT: script_id = 0x01
script = w[8007aecc];
0x0d5f    CallFuncc1368( 0x05, hu[ script + 0x0022 ], hu[ script + 0x0022 ], hu[ script + 0x0022 ] ); // 59 0e 05 dd 22 7f dd 22 7f dd 22 7f
0x0d6b    CallFuncc1368( 0x0a, hu[ script + 0x0022 ], hu[ script + 0x0022 ], hu[ script + 0x0022 ] ); // 59 0e 0a dd 22 7f dd 22 7f dd 22 7f
0x0d77    CallFuncc1368( 0x0b, hu[ script + 0x0022 ], hu[ script + 0x0022 ], hu[ script + 0x0022 ] ); // 59 0e 0b dd 22 7f dd 22 7f dd 22 7f
0x0d83    CallFuncc1368( 0x0c, hu[ script + 0x0022 ], hu[ script + 0x0022 ], hu[ script + 0x0022 ] ); // 59 0e 0c dd 22 7f dd 22 7f dd 22 7f
0x0d8f    CallFuncc1368( 0x0d, hu[ script + 0x0022 ], hu[ script + 0x0022 ], hu[ script + 0x0022 ] ); // 59 0e 0d dd 22 7f dd 22 7f dd 22 7f
0x0d9b    CallFuncc1368( 0x0e, hu[ script + 0x0022 ], hu[ script + 0x0022 ], hu[ script + 0x0022 ] ); // 59 0e 0e dd 22 7f dd 22 7f dd 22 7f
0x0da7    CallFuncc1368( 0x0f, hu[ script + 0x0022 ], hu[ script + 0x0022 ], hu[ script + 0x0022 ] ); // 59 0e 0f dd 22 7f dd 22 7f dd 22 7f
0x0db3    CallFuncc1368( 0x12, hu[ script + 0x0022 ], hu[ script + 0x0022 ], hu[ script + 0x0022 ] ); // 59 0e 12 dd 22 7f dd 22 7f dd 22 7f
0x0dbf    JumpIf( ( hu[ script + 0x0024 ] > 0x00000080 ) == false )To( 0x0dd2 ); // 05 dd 24 7d 80 00 19 7f 02 08 00
0x0dca    [ w[ 0x8007bcf8 ] + 0x0000 ] = h( 0x00000000 ); // 05 de 00 7d 00 00 2c 7f
0x0dd2    CallFuncc1368( 0x11, ( hu[ w[ 0x8007bcf8 ] + 0x0000 ] + hu[ script + 0x0024 ] ), ( hu[ w[ 0x8007bcf8 ] + 0x0000 ] + hu[ script + 0x0024 ] ), ( hu[ w[ 0x8007bcf8 ] + 0x0000 ] + hu[ script + 0x0024 ] ) ); // 59 0e 11 dd 24 de 00 14 7f dd 24 de 00 14 7f dd 24 de 00 14 7f
0x0de7    JumpIf( ( hu[ script + 0x0024 ] == 0x00000080 ) == false )To( 0x0e54 ); // 05 dd 24 7d 80 00 20 7f 02 62 00
0x0df2    JumpSwitch( hu[ w[ 0x8007bcf8 ] + 0x0000 ] )( case 0000: jump_to:0x0e12)( case 0006: jump_to:0x0e1d)( case 000c: jump_to:0x0e28)( case 000f: jump_to:0x0e33)( case 000b: jump_to:0x0e3e)( case 0005: jump_to:0x0e49)( default: jump_to:0x0e54); // 05 de 00 7f 06 06 5a 00 00 00 18 00 06 00 23 00 0c 00 2e 00 0f 00 39 00 0b 00 44 00 05 00 4f 00
0x0e12    [ w[ 0x8007bcf8 ] + 0x0000 ] = h( 0x00000006 ); // 05 de 00 7d 06 00 2c 7f
0x0e1a    JumpTo( 0x0e54 ); // 01 37 00
0x0e1d    [ w[ 0x8007bcf8 ] + 0x0000 ] = h( 0x0000000c ); // 05 de 00 7d 0c 00 2c 7f
0x0e25    JumpTo( 0x0e54 ); // 01 2c 00
0x0e28    [ w[ 0x8007bcf8 ] + 0x0000 ] = h( 0x0000000f ); // 05 de 00 7d 0f 00 2c 7f
0x0e30    JumpTo( 0x0e54 ); // 01 21 00
0x0e33    [ w[ 0x8007bcf8 ] + 0x0000 ] = h( 0x0000000b ); // 05 de 00 7d 0b 00 2c 7f
0x0e3b    JumpTo( 0x0e54 ); // 01 16 00
0x0e3e    [ w[ 0x8007bcf8 ] + 0x0000 ] = h( 0x00000005 ); // 05 de 00 7d 05 00 2c 7f
0x0e46    JumpTo( 0x0e54 ); // 01 0b 00
0x0e49    [ w[ 0x8007bcf8 ] + 0x0000 ] = h( 0x00000000 ); // 05 de 00 7d 00 00 2c 7f
0x0e51    JumpTo( 0x0e54 ); // 01 00 00
0x0e54    Wait( 0x01 ); // 22 00 01
0x0e57    JumpTo( 0x0d5f ); // 01 05 ff




ENTITY: entity_id = 0x0c
SCRIPT: script_id = 0x00
script = w[8007aecc];
0x0e66    Return(); // 04

SCRIPT: script_id = 0x01
script = w[8007aecc];
0x0e67    JumpIf( ( ( bu[ script + 0x0026 ] == 0x00000000 ) && ( bu[ script + 0x002a ] == 0x00000002 ) ) == false )To( 0x0e84 ); // 05 d5 26 7d 00 00 20 d5 2a 7d 02 00 20 27 7f 02 0b 00
0x0e79    [ script + 0x002a ] = b( 0x00000000 ); // 05 d5 2a 7d 00 00 2c 7f
0x0e81    0x21( 0x01 ); // 21 00 01
0x0e84    JumpIf( ( bu[ script + 0x0018 ] == 0x00000001 ) == false )To( 0x0ec6 ); // 05 d5 18 7d 01 00 20 7f 02 37 00
0x0e8f    JumpIf( ( h[ script + 0x0028 ] < 0x0000012c ) == false )To( 0x0e9f ); // 05 d9 28 7d 2c 01 18 7f 02 05 00
0x0e9a    ( h[ script + 0x0028 ]++ ); // 05 d9 28 04 7f
0x0e9f    JumpIf( ( ( ( h[ script + 0x0028 ] == 0x0000012c ) && ( bu[ script + 0x002a ] == 0x00000000 ) ) && ( bu[script + 16ec] == 0x00000001 ) ) == false )To( 0x0ec6 ); // 05 d9 28 7d 2c 01 20 d5 2a 7d 00 00 20 27 7a 02 7d 01 00 20 27 7f 02 0e 00
0x0eb8    [ script + 0x002a ] = b( 0x00000001 ); // 05 d5 2a 7d 01 00 2c 7f
0x0ec0    0x20Async( 0x01, 0x10, 0x0025 ); // 20 00 01 10 25 00
0x0ec6    Wait( 0x01 ); // 22 00 01
0x0ec9    JumpTo( 0x0e67 ); // 01 9b ff





Description is as follows
Code: [Select]
+00 [][]     X
+02 [][]     Y
+04 [][]     Z
+06 [][]     direction

+11 []       init with 0xff. Set 0xc0 in entity 0xf script 0x1. Related with 80077c82.

+18 []       scene progress.
                0x00 - initial value.
                0x01
                0x02
                0x03
                0x04
                0x05 - blank, cina and marcus run into room.
                0x06
                0x07
                0x08
                0x09
                0x0a - baku dragon enter the room.
                0x0b
                0x0c
                0x0d
                0x0e
+1a []       some timer. Do various things when it greater than 0.

+1c []       some flag progress.
                0x40 - remove this flag every progress cycle. This flag used to wait all entities until progress updates.
                0x80 - if this flag is set we advance +18 from 00 to 01 and remove this flag.


entity_id = 0x00 - script - init entity.
    script_id = 0x00
        init script. Start all others entity and set up initial variable values.
        ???
    script_id = 0x0a
        ???

entity_id = 0x01 - script - ???
    script_id = 0x00
        ???
    script_id = 0x01
        ???

entity_id = 0x02 - script - ???
    script_id = 0x00
        do nothing.
    script_id = 0x01
        ???

entity_id = 0x03 - script - progress update entity.
    script_id = 0x00
        do nothing.
    script_id = 0x01
        update progress variable +18 if flag 0x80 in +1c is set. Remove flag 0x40 from +1c every cycle.

entity_id = 0x04 - type3 - ???
    script_id = 0x00
        ???
    script_id = 0x02
        ???

entity_id = 0x05 - type3 - ???
    script_id = 0x00
        ???
    script_id = 0x02
        ???

entity_id = 0x06 - type3 - ???
    script_id = 0x00
        ???
    script_id = 0x02
        ???

entity_id = 0x07 - type3 - ???
    script_id = 0x00
        ???
    script_id = 0x02
        ???

entity_id = 0x08 - script - ???
    script_id = 0x00
        ???
    script_id = 0x01
        ???

entity_id = 0x09 - script - ???
    script_id = 0x00
        ???
    script_id = 0x01
        ???

entity_id = 0x0a - script - ???
    script_id = 0x00
        ???
    script_id = 0x01
        ???

entity_id = 0x0b - script - ???
    script_id = 0x00
        ???
    script_id = 0x01
        ???

entity_id = 0x0c - script - ???
    script_id = 0x00
        ???
    script_id = 0x01
        ???

entity_id = 0x0d - model - baku dragon
    script_id = 0x00
        init model state and position.
    script_id = 0x01
        do things depenging on scene progress +18. Wait otherwise.
        0xa -
        0xb -
        0xc -

entity_id = 0x0e - script - baku dragon jump
    script_id = 0x00
        perform jump.

entity_id = 0x0f - model - baku
    script_id = 0x00
        init model state and position.
    script_id = 0x01
        ???

entity_id = 0x10 - script - ???
    script_id = 0x00
        ???

entity_id = 0x11 - model - zidane
    script_id = 0x00
        init model state and position depending on 0x8007aef0 + 0x0002 (maybe stored progress???).
    script_id = 0x01
        ???
    script_id = 0x0b
        ???
    script_id = 0x0c
        ???
    script_id = 0x0d
        ???

entity_id = 0x16 - model - ???
    script_id = 0x00
        init model state and position.
    script_id = 0x01
        ???

entity_id = 0x17 - model - ???
    script_id = 0x00
        init model state and position.
    script_id = 0x01
        ???

entity_id = 0x18 - model - ???
    script_id = 0x00
        init model state and position.
    script_id = 0x01
        ???

Pages: [1]