diff --git a/generator/csv/enums.csv b/generator/csv/enums.csv index 6ebccf21d..d3707c12a 100644 --- a/generator/csv/enums.csv +++ b/generator/csv/enums.csv @@ -137,6 +137,10 @@ SavePicture,BattleLayer,windows_and_status,4 SavePicture,BattleLayer,timers,5 SaveSystem,AtbMode,atb_active,0 SaveSystem,AtbMode,atb_wait,1 +SaveVehicleLocation,VehicleType,none,0 +SaveVehicleLocation,VehicleType,skiff,1 +SaveVehicleLocation,VehicleType,ship,2 +SaveVehicleLocation,VehicleType,airship,3 State,Persistence,ends,0 State,Persistence,persists,1 State,Restriction,normal,0 diff --git a/generator/csv/fields.csv b/generator/csv/fields.csv index 54455d146..6ad1c7e1d 100644 --- a/generator/csv/fields.csv +++ b/generator/csv/fields.csv @@ -613,7 +613,7 @@ MapInfo,teleport,f,Enum,0x1F,0,1,0,Flag. 0=inherit; 1=allow; 2 MapInfo,escape,f,Enum,0x20,0,1,0,Flag. 0=inherit; 1=allow; 2=disallow MapInfo,save,f,Enum,0x21,0,1,0,Flag. 0=inherit; 1=allow; 2=disallow MapInfo,encounters,f,Array,0x29,,1,0,Array - RPG::Encounter -MapInfo,encounter_steps,f,Int32,0x2C,25,0,0,Integer. 0 inherits from parent (?) FIXME +MapInfo,encounter_steps,f,Int32,0x2C,25,0,0,0=Encounters Disabled; 1=Encounter Rate for the map MapInfo,area_rect,f,Rect,0x33,,0,0,Uint32 x 4 (Left; Top; Right; Bottom). Normal map (non-area) is 0; 0; 0; 0 Start,party_map_id,f,Ref,0x01,0,0,0,Integer Start,party_x,f,Int32,0x02,0,0,0,Integer @@ -723,7 +723,7 @@ SaveSystem,face_id,f,Int32,0x34,0,0,0, SaveSystem,face_right,f,Boolean,0x35,False,0,0,bool SaveSystem,face_flip,f,Boolean,0x36,False,0,0,bool SaveSystem,transparent,f,Boolean,0x37,False,0,0, -SaveSystem,unknown_3d_music_fadeout,f,Int32,0x3D,0,0,0,music fade out? FIXME +SaveSystem,music_stopping,f,Boolean,0x3D,False,0,0,Music is being faded out or had been stopped (Play music with the same music as currently playing will restart the music when this flag is set) SaveSystem,title_music,f,Music,0x47,,0,0, SaveSystem,battle_music,f,Music,0x48,,0,0, SaveSystem,battle_end_music,f,Music,0x49,,0,0, @@ -788,7 +788,7 @@ SaveScreen,pan_y,f,Int32,0x2A,0,0,0,int SaveScreen,battleanim_id,f,Int32,0x2B,0,0,0,int - battle animation ID SaveScreen,battleanim_target,f,Int32,0x2C,0,0,0,int - battle animation target SaveScreen,battleanim_frame,f,Int32,0x2D,0,0,0,int - frame count - Ref? FIXME -SaveScreen,unknown_2e_battleanim_active,f,Int32,0x2E,0,0,0,int - unsure FIXME +SaveScreen,battleanim_active,f,Boolean,0x2E,False,0,0,There is currently a battle animation playing SaveScreen,battleanim_global,f,Boolean,0x2F,False,0,0,int - battle animation global scope SaveScreen,weather,f,Int32,0x30,0,0,0,int SaveScreen,weather_strength,f,Int32,0x31,0,0,0,int @@ -850,7 +850,7 @@ SavePartyLocation,move_route_overwrite,f,Boolean,0x2A,False,0,0,Use custom move SavePartyLocation,move_route_index,f,Int32,0x2B,0,0,0,Index of MoveEvent command route SavePartyLocation,move_route_repeated,f,Boolean,0x2C,False,0,0,Boolean - Repeating move route has been completed at least once SavePartyLocation,sprite_transparent,f,Boolean,0x2E,False,0,0,bool -SavePartyLocation,unknown_2f_overlap,f,Int32,0x2F,0,0,0,Boolean - Overlap? Almost the same as 0x33 (through). 0x2F represents that by MoveEvent the through mode has been activated. 0x33 represents whether the event is permeable straight and no matter which. This is actually only relevant events (not the hero) for example which can be set by an empty event page on translucent (0x33 = true) without having been set by a MoveEvent so (0x2F = false). FIXME +SavePartyLocation,route_through,f,Boolean,0x2F,False,0,0,Whether the move route (MoveEvent or defined route) activated through mode. Almost the same as 0x33 (through). 0x2F represents that by MoveEvent the through mode has been activated; but 0x33 is what's actually checked for collisions. In several cases; 0x33 will be changed to indicate a condition in which an event or the hero is in through mode through other means than a MoveEvent; which can be: an event with an empty page being activated; player pressing Ctrl in test play; hero entering or exiting a vehicle (only very briefly) SavePartyLocation,anim_paused,f,Int32,0x30,0,0,0,? SavePartyLocation,through,f,Boolean,0x33,False,0,0,Can go through anything SavePartyLocation,stop_count,f,Int32,0x34,0,0,0,? @@ -859,11 +859,11 @@ SavePartyLocation,max_stop_count,f,Int32,0x36,0,0,0,2^move_frequency - Once stop SavePartyLocation,jumping,f,Boolean,0x3D,False,0,0,? SavePartyLocation,begin_jump_x,f,Int32,0x3E,0,0,0,? SavePartyLocation,begin_jump_y,f,Int32,0x3F,0,0,0,? -SavePartyLocation,unknown_47_pause,f,Int32,0x47,0,0,0,used as a kind of pause flag during the event processing. Not quite sure what causes it. FIXME +SavePartyLocation,pause,f,Boolean,0x47,False,0,0,Indicates paused movement for an event; set while the player is talking to the event so that it won't run away (not relevant for hero themselves) SavePartyLocation,flying,f,Boolean,0x48,False,0,0,Flag SavePartyLocation,sprite_name,f,String,0x49,'',0,0,? SavePartyLocation,sprite_id,f,Int32,0x4A,0,0,0,? -SavePartyLocation,unknown_4b_sprite_move,f,Int32,0x4B,0,0,0,Flag whether an event (the hero is also an event) in the current frame have any movement action has made. +SavePartyLocation,processed,f,Boolean,0x4B,False,0,0,Flag whether an event (the hero is also an event) in the current frame processed their movement actions (may also be none). This is required because events are asked every frame to initiate their next movement step if required; but not necessarily in order; because checking passability for an event trying to move onto another tile will trigger any event's movement initiation which is on the target tile (because this way the target event may move away; allowing the other event to move to that tile). This flag ensures that every event processes their possible movements only once per frame even if it was already asked to do so out of order as part of another event's movement initiation. SavePartyLocation,flash_red,f,Int32,0x51,100,0,0,int SavePartyLocation,flash_green,f,Int32,0x52,100,0,0,int SavePartyLocation,flash_blue,f,Int32,0x53,100,0,0,int @@ -874,15 +874,15 @@ SavePartyLocation,aboard,f,Boolean,0x66,False,0,0, SavePartyLocation,vehicle,f,Enum,0x67,0,0,0,Vehicle in use SavePartyLocation,unboarding,f,Boolean,0x68,False,0,0, SavePartyLocation,preboard_move_speed,f,Int32,0x69,4,0,0,Move speed before the party boarded the vehicle -SavePartyLocation,unknown_6c_menu_calling,f,Int32,0x6C,0,0,0,flag which briefly is true if the player presses ESC and another place in the code is set to false when subsequently calls the menu. -SavePartyLocation,pan_state,f,Int32,0x6F,1,0,0, +SavePartyLocation,menu_calling,f,Boolean,0x6C,False,0,0,Flag which briefly is true if the player presses ESC. At the right place in handling each frame's activities for the player; the code checks whether this flag is set and calls the menu; however there are several conditions which would cancel this flag and instead process another higher-priority action; such as when an encounter takes place during the same frame. +SavePartyLocation,pan_state,f,Int32,0x6f,1,0,0, SavePartyLocation,pan_current_x,f,Int32,0x70,2304,0,0,int SavePartyLocation,pan_current_y,f,Int32,0x71,1792,0,0,? SavePartyLocation,pan_finish_x,f,Int32,0x72,2304,0,0,? SavePartyLocation,pan_finish_y,f,Int32,0x73,1792,0,0,? SavePartyLocation,pan_speed,f,Int32,0x79,16,0,0,speed in the scrolls of the screen - shown in sixteenth pixels. SavePartyLocation,encounter_steps,f,Int32,0x7C,0,0,0,int: sum of terrain.encounter_rate for each step -SavePartyLocation,unknown_7d_encounter_calling,f,Boolean,0x7D,False,0,0,Similar to 0x6C - is used to signal a different piece of code that an Encounter to be triggered. +SavePartyLocation,encounter_calling,f,Boolean,0x7D,False,0,0,Similar to 0x6C - is used to signal a different piece of code that an encounter is to be triggered; which may be cancelled by other conditions such as the player starting to interact with an event during the same frame. SavePartyLocation,map_save_count,f,Int32,0x83,0,0,0,Mirrors save_count of current map. On mismatch events are not continued after load. SavePartyLocation,database_save_count,f,Int32,0x84,0,0,0,? SaveVehicleLocation,active,f,Boolean,0x01,True,0,0,Flag @@ -912,17 +912,17 @@ SaveVehicleLocation,max_stop_count,f,Int32,0x36,0,0,0,2^move_frequency - Once st SaveVehicleLocation,jumping,f,Boolean,0x3D,False,0,0,? SaveVehicleLocation,begin_jump_x,f,Int32,0x3E,0,0,0,? SaveVehicleLocation,begin_jump_y,f,Int32,0x3F,0,0,0,? -SaveVehicleLocation,unknown_47_pause,f,Int32,0x47,0,0,0,used as a kind of pause flag during the event processing. Not quite sure what causes it. FIXME +SaveVehicleLocation,pause,f,Boolean,0x47,False,0,0,Indicates paused movement for an event; set while the player is talking to the event so that it won't run away (not relevant for vehicles themselves) SaveVehicleLocation,flying,f,Boolean,0x48,False,0,0,Flag SaveVehicleLocation,sprite_name,f,String,0x49,'',0,0,? SaveVehicleLocation,sprite_id,f,Int32,0x4A,0,0,0,? -SaveVehicleLocation,unknown_4b_sprite_move,f,Int32,0x4B,0,0,0,Flag whether an event (the hero is also an event) in the current frame have any movement action has made. +SaveVehicleLocation,processed,f,Boolean,0x4B,False,0,0,Flag whether an event (the hero is also an event) in the current frame processed their movement actions (may also be none). This is required because events are asked every frame to initiate their next movement step if required; but not necessarily in order; because checking passability for an event trying to move onto another tile will trigger any event's movement initiation which is on the target tile (because this way the target event may move away; allowing the other event to move to that tile). This flag ensures that every event processes their possible movements only once per frame even if it was already asked to do so out of order as part of another event's movement initiation. SaveVehicleLocation,flash_red,f,Int32,0x51,100,0,0,int SaveVehicleLocation,flash_green,f,Int32,0x52,100,0,0,int SaveVehicleLocation,flash_blue,f,Int32,0x53,100,0,0,int SaveVehicleLocation,flash_current_level,f,Double,0x54,0.0,0,0,double SaveVehicleLocation,flash_time_left,f,Int32,0x55,0,0,0,int -SaveVehicleLocation,vehicle,f,Int32,0x65,0,0,0,Ship ID: 1 = boat; 2 = Ship; 3 = Airship - Maybe the same as Enum? FIXME +SaveVehicleLocation,vehicle,f,Enum,0x65,0,0,0,Which vehicle SaveVehicleLocation,original_move_route_index,f,Int32,0x66,0,0,0,Index of custom move route SaveVehicleLocation,remaining_ascent,f,Int32,0x6A,0,0,0,From 0 to 255 - In flying vehicles; remaining distance to ascend SaveVehicleLocation,remaining_descent,f,Int32,0x6B,0,0,0,From 0 to 255 - In flying vehicles; remaining distance to descend @@ -990,11 +990,11 @@ SaveEventCommands,commands,f,Vector,0x02,,1,0,event command list SaveEventCommands,current_command,f,Int32,0x0B,0,0,0,int SaveEventCommands,event_id,f,Int32,0x0C,0,0,0,0 if it's common event or in other map SaveEventCommands,actioned,f,Boolean,0x0D,False,0,0,Event was triggered by the Action Key -SaveEventCommands,unknown_15_subcommand_path_size,f,Int32,0x15,-1,0,0,size of the 0x16 vector: an array which stores the to be brought into an event code path FIXME -SaveEventCommands,unknown_16_subcommand_path,f,Vector,0x16,,1,0,byte Each indentation in the event code corresponds to an entry in the array. When a command such as e.g. Show Choice is achieved; stored in the array entry of the current level; which code path must accept the event. For example: if the player chooses the third entry is '3' (or maybe 2? not tested) stored there. When a 'Case XXX' is achieved command; it is checked whether the value is stored there; the value of the 'Case'-subcommand corresponds. Otherwise the block is skipped. If so then the block is executed and the stored value is set to 255 (probably a double protection if times; although that should never be more Case subcommands are with the same ID. FIXME +SaveEventCommands,subcommand_path,t,UInt8,0x15,0,0,0,size of the 0x16 vector - indention level +SaveEventCommands,subcommand_path,f,Vector,0x16,,1,0,byte For each indention level in the script; an ID is stored there which corresponds to the branch to take in case a command allows multiple branches. For example; the Show Choice command would write the result of the choice (for example 2 for the third item) into the current indention level's entry in this array; and the script processor would later look for the Case subcommand with the corresponding ID; if any; and jump to that one (if none found; it would jump to the End Case subcommand). Once the jump is executed; the ID is set to 255 (probably a protection mechanism even though there should normally not be multiple subcommands with the same ID). SaveEventData,commands,f,Array,0x01,,1,0,array SaveEventData,show_message,f,Boolean,0x04,False,0,0,Show Message command has been executed in the current move route -SaveEventData,unknown_0b_escape,f,Int32,0x0B,0,0,0,Flag which is set before a fight if the event is canceled by the struggle for escape. FIXME +SaveEventData,abort_on_escape,f,Boolean,0x0B,False,0,0,Flag which is set before a fight if the EnemyEncounter event command had battle_escape_mode set to 1 (abort event on escape). After the fight; the interpreter checks if the battle result was an escape and this flag was set and abort the event in that case. SaveEventData,wait_movement,f,Boolean,0x0D,False,0,0,Whether Wait for all movement is in effect SaveEventData,keyinput_wait,f,Boolean,0x15,False,0,0, SaveEventData,keyinput_variable,f,UInt8,0x16,0,0,0, @@ -1013,7 +1013,7 @@ SaveEventData,keyinput_left,f,Boolean,0x24,False,0,0, SaveEventData,keyinput_right,f,Boolean,0x25,False,0,0, SaveEventData,keyinput_up,f,Boolean,0x26,False,0,0, SaveEventData,keyinput_timed,f,Boolean,0x29,False,0,0, -SaveEventData,unknown_2a_time_left,f,Int32,0x2A,0,0,0,number of frames have to wait until the event continues. FIXME difference with 0x1F? +SaveEventData,unused_wait_for_key_or_enter,f,Boolean,0x2a,False,0,0,If enabled; an event waits for either the confirmation key to be pressed or one of the keys defined by KeyInputProc before continuing. This flag seems to be unused though since it is never written to (keyinput_wait is used instead). SaveMapEvent,active,f,Boolean,0x01,True,0,0,Flag SaveMapEvent,map_id,f,Int32,0x0B,-1,0,0,? SaveMapEvent,position_x,f,Int32,0x0C,-1,0,0,? @@ -1033,7 +1033,7 @@ SaveMapEvent,move_route,f,MoveRoute,0x29,,0,0,chunks: RPG::MoveRoute SaveMapEvent,move_route_overwrite,f,Boolean,0x2A,False,0,0,Use custom move route SaveMapEvent,move_route_index,f,Int32,0x2B,0,0,0,Index of MoveEvent command route SaveMapEvent,move_route_repeated,f,Boolean,0x2C,False,0,0,Boolean - Repeating move route has been completed at least once -SaveMapEvent,unknown_2f_overlap,f,Int32,0x2F,-1,0,0,Boolean - Overlap? Almost the same as 0x33 (through). 0x2F represents that by MoveEvent the through mode has been activated. 0x33 represents whether the event is permeable straight and no matter which. This is actually only relevant events (not the hero) for example which can be set by an empty event page on translucent (0x33 = true) without having been set by a MoveEvent so (0x2F = false). FIXME +SaveMapEvent,route_through,f,Boolean,0x2F,False,0,0,Whether the move route (MoveEvent or defined route) activated through mode. Almost the same as 0x33 (through). 0x2F represents that by MoveEvent the through mode has been activated; but 0x33 is what's actually checked for collisions. In several cases; 0x33 will be changed to indicate a condition in which an event or the hero is in through mode through other means than a MoveEvent; which can be: an event with an empty page being activated; player pressing Ctrl in test play; hero entering or exiting a vehicle (only very briefly) SaveMapEvent,anim_paused,f,Int32,0x30,0,0,0,? SaveMapEvent,through,f,Boolean,0x33,False,0,0,Can go through anything SaveMapEvent,stop_count,f,Int32,0x34,0,0,0,? @@ -1042,11 +1042,11 @@ SaveMapEvent,max_stop_count,f,Int32,0x36,0,0,0,2^move_frequency unless it's a ra SaveMapEvent,jumping,f,Boolean,0x3D,False,0,0,? SaveMapEvent,begin_jump_x,f,Int32,0x3E,0,0,0,? SaveMapEvent,begin_jump_y,f,Int32,0x3F,0,0,0,? -SaveMapEvent,unknown_47_pause,f,Int32,0x47,0,0,0,used as a kind of pause flag during the event processing. Not quite sure what causes it. FIXME +SaveMapEvent,pause,f,Boolean,0x47,False,0,0,Indicates paused movement for an event; set while the player is talking to the event so that it won't run away SaveMapEvent,flying,f,Boolean,0x48,False,0,0,Flag SaveMapEvent,sprite_name,f,String,0x49,'',0,0,? SaveMapEvent,sprite_id,f,Int32,0x4A,-1,0,0,? -SaveMapEvent,unknown_4b_sprite_move,f,Int32,0x4B,-1,0,0,Flag whether an event (the hero is also an event) in the current frame have any movement action has made. +SaveMapEvent,processed,f,Boolean,0x4B,False,0,0,Flag whether an event (the hero is also an event) in the current frame processed their movement actions (may also be none). This is required because events are asked every frame to initiate their next movement step if required; but not necessarily in order; because checking passability for an event trying to move onto another tile will trigger any event's movement initiation which is on the target tile (because this way the target event may move away; allowing the other event to move to that tile). This flag ensures that every event processes their possible movements only once per frame even if it was already asked to do so out of order as part of another event's movement initiation. SaveMapEvent,flash_red,f,Int32,0x51,100,0,0,int SaveMapEvent,flash_green,f,Int32,0x52,100,0,0,int SaveMapEvent,flash_blue,f,Int32,0x53,100,0,0,int diff --git a/src/generated/lmt_chunks.h b/src/generated/lmt_chunks.h index 35b4a99ef..c4ecc190a 100644 --- a/src/generated/lmt_chunks.h +++ b/src/generated/lmt_chunks.h @@ -54,7 +54,7 @@ namespace LMT_Reader { save = 0x21, /** Array - RPG::Encounter */ encounters = 0x29, - /** Integer. 0 inherits from parent (?) FIXME */ + /** 0=Encounters Disabled; 1=Encounter Rate for the map */ encounter_steps = 0x2C, /** Uint32 x 4 (Left; Top; Right; Bottom). Normal map (non-area) is 0; 0; 0; 0 */ area_rect = 0x33 diff --git a/src/generated/lsd_chunks.h b/src/generated/lsd_chunks.h index 55c553399..222adcd8d 100644 --- a/src/generated/lsd_chunks.h +++ b/src/generated/lsd_chunks.h @@ -82,8 +82,8 @@ namespace LSD_Reader { face_flip = 0x36, /** */ transparent = 0x37, - /** music fade out? FIXME */ - unknown_3d_music_fadeout = 0x3D, + /** Music is being faded out or had been stopped (Play music with the same music as currently playing will restart the music when this flag is set) */ + music_stopping = 0x3D, /** */ title_music = 0x47, /** */ @@ -216,8 +216,8 @@ namespace LSD_Reader { battleanim_target = 0x2C, /** int - frame count - Ref? FIXME */ battleanim_frame = 0x2D, - /** int - unsure FIXME */ - unknown_2e_battleanim_active = 0x2E, + /** There is currently a battle animation playing */ + battleanim_active = 0x2E, /** int - battle animation global scope */ battleanim_global = 0x2F, /** int */ @@ -348,8 +348,8 @@ namespace LSD_Reader { move_route_repeated = 0x2C, /** bool */ sprite_transparent = 0x2E, - /** Boolean - Overlap? Almost the same as 0x33 (through). 0x2F represents that by MoveEvent the through mode has been activated. 0x33 represents whether the event is permeable straight and no matter which. This is actually only relevant events (not the hero) for example which can be set by an empty event page on translucent (0x33 = true) without having been set by a MoveEvent so (0x2F = false). FIXME */ - unknown_2f_overlap = 0x2F, + /** Whether the move route (MoveEvent or defined route) activated through mode. Almost the same as 0x33 (through). 0x2F represents that by MoveEvent the through mode has been activated; but 0x33 is what's actually checked for collisions. In several cases; 0x33 will be changed to indicate a condition in which an event or the hero is in through mode through other means than a MoveEvent; which can be: an event with an empty page being activated; player pressing Ctrl in test play; hero entering or exiting a vehicle (only very briefly) */ + route_through = 0x2F, /** ? */ anim_paused = 0x30, /** Can go through anything */ @@ -366,16 +366,16 @@ namespace LSD_Reader { begin_jump_x = 0x3E, /** ? */ begin_jump_y = 0x3F, - /** used as a kind of pause flag during the event processing. Not quite sure what causes it. FIXME */ - unknown_47_pause = 0x47, + /** Indicates paused movement for an event; set while the player is talking to the event so that it won't run away (not relevant for hero themselves) */ + pause = 0x47, /** Flag */ flying = 0x48, /** ? */ sprite_name = 0x49, /** ? */ sprite_id = 0x4A, - /** Flag whether an event (the hero is also an event) in the current frame have any movement action has made. */ - unknown_4b_sprite_move = 0x4B, + /** Flag whether an event (the hero is also an event) in the current frame processed their movement actions (may also be none). This is required because events are asked every frame to initiate their next movement step if required; but not necessarily in order; because checking passability for an event trying to move onto another tile will trigger any event's movement initiation which is on the target tile (because this way the target event may move away; allowing the other event to move to that tile). This flag ensures that every event processes their possible movements only once per frame even if it was already asked to do so out of order as part of another event's movement initiation. */ + processed = 0x4B, /** int */ flash_red = 0x51, /** int */ @@ -396,8 +396,8 @@ namespace LSD_Reader { unboarding = 0x68, /** Move speed before the party boarded the vehicle */ preboard_move_speed = 0x69, - /** flag which briefly is true if the player presses ESC and another place in the code is set to false when subsequently calls the menu. */ - unknown_6c_menu_calling = 0x6C, + /** Flag which briefly is true if the player presses ESC. At the right place in handling each frame's activities for the player; the code checks whether this flag is set and calls the menu; however there are several conditions which would cancel this flag and instead process another higher-priority action; such as when an encounter takes place during the same frame. */ + menu_calling = 0x6C, /** */ pan_state = 0x6F, /** int */ @@ -412,8 +412,8 @@ namespace LSD_Reader { pan_speed = 0x79, /** int: sum of terrain.encounter_rate for each step */ encounter_steps = 0x7C, - /** Similar to 0x6C - is used to signal a different piece of code that an Encounter to be triggered. */ - unknown_7d_encounter_calling = 0x7D, + /** Similar to 0x6C - is used to signal a different piece of code that an encounter is to be triggered; which may be cancelled by other conditions such as the player starting to interact with an event during the same frame. */ + encounter_calling = 0x7D, /** Mirrors save_count of current map. On mismatch events are not continued after load. */ map_save_count = 0x83, /** ? */ @@ -476,16 +476,16 @@ namespace LSD_Reader { begin_jump_x = 0x3E, /** ? */ begin_jump_y = 0x3F, - /** used as a kind of pause flag during the event processing. Not quite sure what causes it. FIXME */ - unknown_47_pause = 0x47, + /** Indicates paused movement for an event; set while the player is talking to the event so that it won't run away (not relevant for vehicles themselves) */ + pause = 0x47, /** Flag */ flying = 0x48, /** ? */ sprite_name = 0x49, /** ? */ sprite_id = 0x4A, - /** Flag whether an event (the hero is also an event) in the current frame have any movement action has made. */ - unknown_4b_sprite_move = 0x4B, + /** Flag whether an event (the hero is also an event) in the current frame processed their movement actions (may also be none). This is required because events are asked every frame to initiate their next movement step if required; but not necessarily in order; because checking passability for an event trying to move onto another tile will trigger any event's movement initiation which is on the target tile (because this way the target event may move away; allowing the other event to move to that tile). This flag ensures that every event processes their possible movements only once per frame even if it was already asked to do so out of order as part of another event's movement initiation. */ + processed = 0x4B, /** int */ flash_red = 0x51, /** int */ @@ -496,7 +496,7 @@ namespace LSD_Reader { flash_current_level = 0x54, /** int */ flash_time_left = 0x55, - /** Ship ID: 1 = boat; 2 = Ship; 3 = Airship - Maybe the same as Enum? FIXME */ + /** Which vehicle */ vehicle = 0x65, /** Index of custom move route */ original_move_route_index = 0x66, @@ -648,10 +648,10 @@ namespace LSD_Reader { event_id = 0x0C, /** Event was triggered by the Action Key */ actioned = 0x0D, - /** size of the 0x16 vector: an array which stores the to be brought into an event code path FIXME */ - unknown_15_subcommand_path_size = 0x15, - /** byte Each indentation in the event code corresponds to an entry in the array. When a command such as e.g. Show Choice is achieved; stored in the array entry of the current level; which code path must accept the event. For example: if the player chooses the third entry is '3' (or maybe 2? not tested) stored there. When a 'Case XXX' is achieved command; it is checked whether the value is stored there; the value of the 'Case'-subcommand corresponds. Otherwise the block is skipped. If so then the block is executed and the stored value is set to 255 (probably a double protection if times; although that should never be more Case subcommands are with the same ID. FIXME */ - unknown_16_subcommand_path = 0x16 + /** size of the 0x16 vector - indention level */ + subcommand_path_size = 0x15, + /** byte For each indention level in the script; an ID is stored there which corresponds to the branch to take in case a command allows multiple branches. For example; the Show Choice command would write the result of the choice (for example 2 for the third item) into the current indention level's entry in this array; and the script processor would later look for the Case subcommand with the corresponding ID; if any; and jump to that one (if none found; it would jump to the End Case subcommand). Once the jump is executed; the ID is set to 255 (probably a protection mechanism even though there should normally not be multiple subcommands with the same ID). */ + subcommand_path = 0x16 }; }; struct ChunkSaveEventData { @@ -660,8 +660,8 @@ namespace LSD_Reader { commands = 0x01, /** Show Message command has been executed in the current move route */ show_message = 0x04, - /** Flag which is set before a fight if the event is canceled by the struggle for escape. FIXME */ - unknown_0b_escape = 0x0B, + /** Flag which is set before a fight if the EnemyEncounter event command had battle_escape_mode set to 1 (abort event on escape). After the fight; the interpreter checks if the battle result was an escape and this flag was set and abort the event in that case. */ + abort_on_escape = 0x0B, /** Whether Wait for all movement is in effect */ wait_movement = 0x0D, /** */ @@ -698,8 +698,8 @@ namespace LSD_Reader { keyinput_up = 0x26, /** */ keyinput_timed = 0x29, - /** number of frames have to wait until the event continues. FIXME difference with 0x1F? */ - unknown_2a_time_left = 0x2A + /** If enabled; an event waits for either the confirmation key to be pressed or one of the keys defined by KeyInputProc before continuing. This flag seems to be unused though since it is never written to (keyinput_wait is used instead). */ + unused_wait_for_key_or_enter = 0x2A }; }; struct ChunkSaveMapEvent { @@ -742,8 +742,8 @@ namespace LSD_Reader { move_route_index = 0x2B, /** Boolean - Repeating move route has been completed at least once */ move_route_repeated = 0x2C, - /** Boolean - Overlap? Almost the same as 0x33 (through). 0x2F represents that by MoveEvent the through mode has been activated. 0x33 represents whether the event is permeable straight and no matter which. This is actually only relevant events (not the hero) for example which can be set by an empty event page on translucent (0x33 = true) without having been set by a MoveEvent so (0x2F = false). FIXME */ - unknown_2f_overlap = 0x2F, + /** Whether the move route (MoveEvent or defined route) activated through mode. Almost the same as 0x33 (through). 0x2F represents that by MoveEvent the through mode has been activated; but 0x33 is what's actually checked for collisions. In several cases; 0x33 will be changed to indicate a condition in which an event or the hero is in through mode through other means than a MoveEvent; which can be: an event with an empty page being activated; player pressing Ctrl in test play; hero entering or exiting a vehicle (only very briefly) */ + route_through = 0x2F, /** ? */ anim_paused = 0x30, /** Can go through anything */ @@ -760,16 +760,16 @@ namespace LSD_Reader { begin_jump_x = 0x3E, /** ? */ begin_jump_y = 0x3F, - /** used as a kind of pause flag during the event processing. Not quite sure what causes it. FIXME */ - unknown_47_pause = 0x47, + /** Indicates paused movement for an event; set while the player is talking to the event so that it won't run away */ + pause = 0x47, /** Flag */ flying = 0x48, /** ? */ sprite_name = 0x49, /** ? */ sprite_id = 0x4A, - /** Flag whether an event (the hero is also an event) in the current frame have any movement action has made. */ - unknown_4b_sprite_move = 0x4B, + /** Flag whether an event (the hero is also an event) in the current frame processed their movement actions (may also be none). This is required because events are asked every frame to initiate their next movement step if required; but not necessarily in order; because checking passability for an event trying to move onto another tile will trigger any event's movement initiation which is on the target tile (because this way the target event may move away; allowing the other event to move to that tile). This flag ensures that every event processes their possible movements only once per frame even if it was already asked to do so out of order as part of another event's movement initiation. */ + processed = 0x4B, /** int */ flash_red = 0x51, /** int */ diff --git a/src/generated/lsd_saveeventcommands.cpp b/src/generated/lsd_saveeventcommands.cpp index 26412747c..357257022 100644 --- a/src/generated/lsd_saveeventcommands.cpp +++ b/src/generated/lsd_saveeventcommands.cpp @@ -25,8 +25,8 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(int32_t, current_command, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, event_id, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, actioned, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_15_subcommand_path_size, 0, 0), - LCF_STRUCT_TYPED_FIELD(std::vector, unknown_16_subcommand_path, 1, 0), + LCF_STRUCT_SIZE_FIELD(uint8_t, subcommand_path, 0, 0), + LCF_STRUCT_TYPED_FIELD(std::vector, subcommand_path, 1, 0), LCF_STRUCT_FIELDS_END() #undef LCF_CURRENT_STRUCT diff --git a/src/generated/lsd_saveeventdata.cpp b/src/generated/lsd_saveeventdata.cpp index 435d08067..52f4a9708 100644 --- a/src/generated/lsd_saveeventdata.cpp +++ b/src/generated/lsd_saveeventdata.cpp @@ -22,7 +22,7 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(std::vector, commands, 1, 0), LCF_STRUCT_TYPED_FIELD(bool, show_message, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_0b_escape, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, abort_on_escape, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, wait_movement, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, keyinput_wait, 0, 0), LCF_STRUCT_TYPED_FIELD(uint8_t, keyinput_variable, 0, 0), @@ -41,7 +41,7 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(bool, keyinput_right, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, keyinput_up, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, keyinput_timed, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_2a_time_left, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, unused_wait_for_key_or_enter, 0, 0), LCF_STRUCT_FIELDS_END() #undef LCF_CURRENT_STRUCT diff --git a/src/generated/lsd_savemapevent.cpp b/src/generated/lsd_savemapevent.cpp index c3bd964bc..ec92bd68f 100644 --- a/src/generated/lsd_savemapevent.cpp +++ b/src/generated/lsd_savemapevent.cpp @@ -39,7 +39,7 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(bool, move_route_overwrite, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, move_route_index, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, move_route_repeated, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_2f_overlap, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, route_through, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, anim_paused, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, through, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, stop_count, 0, 0), @@ -48,11 +48,11 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(bool, jumping, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, begin_jump_x, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, begin_jump_y, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_47_pause, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, pause, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, flying, 0, 0), LCF_STRUCT_TYPED_FIELD(std::string, sprite_name, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, sprite_id, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_4b_sprite_move, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, processed, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_red, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_green, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_blue, 0, 0), diff --git a/src/generated/lsd_savepartylocation.cpp b/src/generated/lsd_savepartylocation.cpp index 68296933d..a92e8032f 100644 --- a/src/generated/lsd_savepartylocation.cpp +++ b/src/generated/lsd_savepartylocation.cpp @@ -40,7 +40,7 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(int32_t, move_route_index, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, move_route_repeated, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, sprite_transparent, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_2f_overlap, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, route_through, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, anim_paused, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, through, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, stop_count, 0, 0), @@ -49,11 +49,11 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(bool, jumping, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, begin_jump_x, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, begin_jump_y, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_47_pause, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, pause, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, flying, 0, 0), LCF_STRUCT_TYPED_FIELD(std::string, sprite_name, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, sprite_id, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_4b_sprite_move, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, processed, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_red, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_green, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_blue, 0, 0), @@ -64,7 +64,7 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(int32_t, vehicle, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, unboarding, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, preboard_move_speed, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_6c_menu_calling, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, menu_calling, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, pan_state, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, pan_current_x, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, pan_current_y, 0, 0), @@ -72,7 +72,7 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(int32_t, pan_finish_y, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, pan_speed, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, encounter_steps, 0, 0), - LCF_STRUCT_TYPED_FIELD(bool, unknown_7d_encounter_calling, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, encounter_calling, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, map_save_count, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, database_save_count, 0, 0), LCF_STRUCT_FIELDS_END() diff --git a/src/generated/lsd_savescreen.cpp b/src/generated/lsd_savescreen.cpp index b270e32f1..61008b327 100644 --- a/src/generated/lsd_savescreen.cpp +++ b/src/generated/lsd_savescreen.cpp @@ -46,7 +46,7 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(int32_t, battleanim_id, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, battleanim_target, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, battleanim_frame, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_2e_battleanim_active, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, battleanim_active, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, battleanim_global, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, weather, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, weather_strength, 0, 0), diff --git a/src/generated/lsd_savesystem.cpp b/src/generated/lsd_savesystem.cpp index e4b438fad..8cce5a275 100644 --- a/src/generated/lsd_savesystem.cpp +++ b/src/generated/lsd_savesystem.cpp @@ -38,7 +38,7 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(bool, face_right, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, face_flip, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, transparent, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_3d_music_fadeout, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, music_stopping, 0, 0), LCF_STRUCT_TYPED_FIELD(RPG::Music, title_music, 0, 0), LCF_STRUCT_TYPED_FIELD(RPG::Music, battle_music, 0, 0), LCF_STRUCT_TYPED_FIELD(RPG::Music, battle_end_music, 0, 0), diff --git a/src/generated/lsd_savevehiclelocation.cpp b/src/generated/lsd_savevehiclelocation.cpp index 340cc74ec..dfd7b1d04 100644 --- a/src/generated/lsd_savevehiclelocation.cpp +++ b/src/generated/lsd_savevehiclelocation.cpp @@ -47,11 +47,11 @@ LCF_STRUCT_FIELDS_BEGIN() LCF_STRUCT_TYPED_FIELD(bool, jumping, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, begin_jump_x, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, begin_jump_y, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_47_pause, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, pause, 0, 0), LCF_STRUCT_TYPED_FIELD(bool, flying, 0, 0), LCF_STRUCT_TYPED_FIELD(std::string, sprite_name, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, sprite_id, 0, 0), - LCF_STRUCT_TYPED_FIELD(int32_t, unknown_4b_sprite_move, 0, 0), + LCF_STRUCT_TYPED_FIELD(bool, processed, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_red, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_green, 0, 0), LCF_STRUCT_TYPED_FIELD(int32_t, flash_blue, 0, 0), diff --git a/src/generated/rpg_enums.cpp b/src/generated/rpg_enums.cpp index 7348d39b0..91ad5a1f4 100644 --- a/src/generated/rpg_enums.cpp +++ b/src/generated/rpg_enums.cpp @@ -34,6 +34,7 @@ #include "rpg_savesystem.h" #include "rpg_savepicture.h" #include "rpg_savepartylocation.h" +#include "rpg_savevehiclelocation.h" #include "rpg_mapinfo.h" #include "rpg_treemap.h" @@ -98,6 +99,7 @@ constexpr decltype(SaveSystem::kAtbModeTags) SaveSystem::kAtbModeTags; constexpr decltype(SavePicture::kMapLayerTags) SavePicture::kMapLayerTags; constexpr decltype(SavePicture::kBattleLayerTags) SavePicture::kBattleLayerTags; constexpr decltype(SavePartyLocation::kVehicleTypeTags) SavePartyLocation::kVehicleTypeTags; +constexpr decltype(SaveVehicleLocation::kVehicleTypeTags) SaveVehicleLocation::kVehicleTypeTags; constexpr decltype(MapInfo::kMusicTypeTags) MapInfo::kMusicTypeTags; constexpr decltype(MapInfo::kBGMTypeTags) MapInfo::kBGMTypeTags; constexpr decltype(MapInfo::kTriStateTags) MapInfo::kTriStateTags; diff --git a/src/generated/rpg_saveeventcommands.h b/src/generated/rpg_saveeventcommands.h index 4352c690f..72c8f153f 100644 --- a/src/generated/rpg_saveeventcommands.h +++ b/src/generated/rpg_saveeventcommands.h @@ -29,8 +29,7 @@ namespace RPG { int32_t current_command = 0; int32_t event_id = 0; bool actioned = false; - int32_t unknown_15_subcommand_path_size = -1; - std::vector unknown_16_subcommand_path; + std::vector subcommand_path; }; } diff --git a/src/generated/rpg_saveeventdata.h b/src/generated/rpg_saveeventdata.h index 3fe297eb7..efee2d53d 100644 --- a/src/generated/rpg_saveeventdata.h +++ b/src/generated/rpg_saveeventdata.h @@ -25,7 +25,7 @@ namespace RPG { public: std::vector commands; bool show_message = false; - int32_t unknown_0b_escape = 0; + bool abort_on_escape = false; bool wait_movement = false; bool keyinput_wait = false; uint8_t keyinput_variable = 0; @@ -44,7 +44,7 @@ namespace RPG { bool keyinput_right = false; bool keyinput_up = false; bool keyinput_timed = false; - int32_t unknown_2a_time_left = 0; + bool unused_wait_for_key_or_enter = false; }; } diff --git a/src/generated/rpg_savemapevent.h b/src/generated/rpg_savemapevent.h index abfcca8b1..4e7ecd593 100644 --- a/src/generated/rpg_savemapevent.h +++ b/src/generated/rpg_savemapevent.h @@ -48,7 +48,7 @@ namespace RPG { bool move_route_overwrite = false; int32_t move_route_index = 0; bool move_route_repeated = false; - int32_t unknown_2f_overlap = -1; + bool route_through = false; int32_t anim_paused = 0; bool through = false; int32_t stop_count = 0; @@ -57,11 +57,11 @@ namespace RPG { bool jumping = false; int32_t begin_jump_x = 0; int32_t begin_jump_y = 0; - int32_t unknown_47_pause = 0; + bool pause = false; bool flying = false; std::string sprite_name; int32_t sprite_id = -1; - int32_t unknown_4b_sprite_move = -1; + bool processed = false; int32_t flash_red = 100; int32_t flash_green = 100; int32_t flash_blue = 100; diff --git a/src/generated/rpg_savepartylocation.h b/src/generated/rpg_savepartylocation.h index f3eaad0d8..4e2e5c594 100644 --- a/src/generated/rpg_savepartylocation.h +++ b/src/generated/rpg_savepartylocation.h @@ -57,7 +57,7 @@ namespace RPG { int32_t move_route_index = 0; bool move_route_repeated = false; bool sprite_transparent = false; - int32_t unknown_2f_overlap = 0; + bool route_through = false; int32_t anim_paused = 0; bool through = false; int32_t stop_count = 0; @@ -66,11 +66,11 @@ namespace RPG { bool jumping = false; int32_t begin_jump_x = 0; int32_t begin_jump_y = 0; - int32_t unknown_47_pause = 0; + bool pause = false; bool flying = false; std::string sprite_name; int32_t sprite_id = 0; - int32_t unknown_4b_sprite_move = 0; + bool processed = false; int32_t flash_red = 100; int32_t flash_green = 100; int32_t flash_blue = 100; @@ -81,7 +81,7 @@ namespace RPG { int32_t vehicle = 0; bool unboarding = false; int32_t preboard_move_speed = 4; - int32_t unknown_6c_menu_calling = 0; + bool menu_calling = false; int32_t pan_state = 1; int32_t pan_current_x = 2304; int32_t pan_current_y = 1792; @@ -89,7 +89,7 @@ namespace RPG { int32_t pan_finish_y = 1792; int32_t pan_speed = 16; int32_t encounter_steps = 0; - bool unknown_7d_encounter_calling = false; + bool encounter_calling = false; int32_t map_save_count = 0; int32_t database_save_count = 0; }; diff --git a/src/generated/rpg_savescreen.h b/src/generated/rpg_savescreen.h index 0f2d6af64..98d6080bd 100644 --- a/src/generated/rpg_savescreen.h +++ b/src/generated/rpg_savescreen.h @@ -47,7 +47,7 @@ namespace RPG { int32_t battleanim_id = 0; int32_t battleanim_target = 0; int32_t battleanim_frame = 0; - int32_t unknown_2e_battleanim_active = 0; + bool battleanim_active = false; bool battleanim_global = false; int32_t weather = 0; int32_t weather_strength = 0; diff --git a/src/generated/rpg_savesystem.h b/src/generated/rpg_savesystem.h index b7f733113..09bffd5ef 100644 --- a/src/generated/rpg_savesystem.h +++ b/src/generated/rpg_savesystem.h @@ -55,7 +55,7 @@ namespace RPG { bool face_right = false; bool face_flip = false; bool transparent = false; - int32_t unknown_3d_music_fadeout = 0; + bool music_stopping = false; Music title_music; Music battle_music; Music battle_end_music; diff --git a/src/generated/rpg_savevehiclelocation.h b/src/generated/rpg_savevehiclelocation.h index 57bc97c7f..ee46409e0 100644 --- a/src/generated/rpg_savevehiclelocation.h +++ b/src/generated/rpg_savevehiclelocation.h @@ -24,6 +24,19 @@ namespace RPG { class SaveVehicleLocation { public: + enum VehicleType { + VehicleType_none = 0, + VehicleType_skiff = 1, + VehicleType_ship = 2, + VehicleType_airship = 3 + }; + static constexpr auto kVehicleTypeTags = makeEnumTags( + "none", + "skiff", + "ship", + "airship" + ); + bool active = true; int32_t map_id = -1; int32_t position_x = -1; @@ -51,11 +64,11 @@ namespace RPG { bool jumping = false; int32_t begin_jump_x = 0; int32_t begin_jump_y = 0; - int32_t unknown_47_pause = 0; + bool pause = false; bool flying = false; std::string sprite_name; int32_t sprite_id = 0; - int32_t unknown_4b_sprite_move = 0; + bool processed = false; int32_t flash_red = 100; int32_t flash_green = 100; int32_t flash_blue = 100; diff --git a/src/generated/rpg_system.cpp b/src/generated/rpg_system.cpp index 876607a8b..448bce5d6 100644 --- a/src/generated/rpg_system.cpp +++ b/src/generated/rpg_system.cpp @@ -1,7 +1,7 @@ /* !!!! GENERATED FILE - DO NOT EDIT !!!! * -------------------------------------- * - * This file is part of liblcf. Copyright (c) 2017 liblcf authors. + * This file is part of liblcf. Copyright (c) 2018 liblcf authors. * https://github.com/EasyRPG/liblcf - https://easyrpg.org * * liblcf is Free/Libre Open Source Software, released under the MIT License. diff --git a/src/rpg_setup.cpp b/src/rpg_setup.cpp index a87cee5a6..06dafb56d 100644 --- a/src/rpg_setup.cpp +++ b/src/rpg_setup.cpp @@ -111,7 +111,7 @@ void RPG::SaveSystem::Setup() { face_right = false; face_flip = false; transparent = false; - unknown_3d_music_fadeout = -1; + music_stopping = false; title_music = system.title_music; battle_music = system.battle_music; battle_end_music = system.battle_end_music;