Skip to content

Commit

Permalink
Merge pull request #264 from fmatthew5876/ldb_unknown
Browse files Browse the repository at this point in the history
Identify remaining unknown chunks
  • Loading branch information
Ghabry authored Oct 29, 2018
2 parents 448d1e2 + 396fa23 commit ab0450c
Show file tree
Hide file tree
Showing 21 changed files with 105 additions and 87 deletions.
4 changes: 4 additions & 0 deletions generator/csv/enums.csv
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
38 changes: 19 additions & 19 deletions generator/csv/fields.csv

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/generated/lmt_chunks.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
66 changes: 33 additions & 33 deletions src/generated/lsd_chunks.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
/** */
Expand Down Expand Up @@ -216,8 +216,8 @@ namespace LSD_Reader {
battleanim_target = 0x2C,
/** int - frame count - Ref<Animation>? 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 */
Expand Down Expand Up @@ -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 */
Expand All @@ -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 */
Expand All @@ -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 */
Expand All @@ -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,
/** ? */
Expand Down Expand Up @@ -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 */
Expand All @@ -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<SavePartyLocation_VehicleType>? FIXME */
/** Which vehicle */
vehicle = 0x65,
/** Index of custom move route */
original_move_route_index = 0x66,
Expand Down Expand Up @@ -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 {
Expand All @@ -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,
/** */
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 */
Expand All @@ -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 */
Expand Down
4 changes: 2 additions & 2 deletions src/generated/lsd_saveeventcommands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<uint8_t>, unknown_16_subcommand_path, 1, 0),
LCF_STRUCT_SIZE_FIELD(uint8_t, subcommand_path, 0, 0),
LCF_STRUCT_TYPED_FIELD(std::vector<uint8_t>, subcommand_path, 1, 0),
LCF_STRUCT_FIELDS_END()

#undef LCF_CURRENT_STRUCT
Expand Down
4 changes: 2 additions & 2 deletions src/generated/lsd_saveeventdata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
LCF_STRUCT_FIELDS_BEGIN()
LCF_STRUCT_TYPED_FIELD(std::vector<RPG::SaveEventCommands>, 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),
Expand All @@ -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
Expand Down
6 changes: 3 additions & 3 deletions src/generated/lsd_savemapevent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand All @@ -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),
Expand Down
10 changes: 5 additions & 5 deletions src/generated/lsd_savepartylocation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand All @@ -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),
Expand All @@ -64,15 +64,15 @@ 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),
LCF_STRUCT_TYPED_FIELD(int32_t, pan_finish_x, 0, 0),
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()
Expand Down
2 changes: 1 addition & 1 deletion src/generated/lsd_savescreen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down
2 changes: 1 addition & 1 deletion src/generated/lsd_savesystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down
4 changes: 2 additions & 2 deletions src/generated/lsd_savevehiclelocation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down
Loading

0 comments on commit ab0450c

Please sign in to comment.