Skip to content

Some new SaveSystem fields used by Maniac #493

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
florianessl opened this issue Feb 13, 2025 · 7 comments
Open

Some new SaveSystem fields used by Maniac #493

florianessl opened this issue Feb 13, 2025 · 7 comments
Labels

Comments

@florianessl
Copy link
Member

florianessl commented Feb 13, 2025

I nearly forgot I was sitting on these values for a week. I haven't seen any documentation on these new fields anywhere yet, so I wrote some down while I was trying out the new functionalities.

All of these new fields seem to only be serialized, whenever one of the new command variants is actually used.

Only '0x86' seems to always turn up inside saves, even without using any new commands. Can't figure that one out yet, it's alway 1.

Display Text Settings

SaveSystem,maniac_window_size_width,f,Int32,0x2D,0,0,0,
SaveSystem,maniac_window_size_height,f,Int32,0x2E,0,0,0,
SaveSystem,maniac_font_name,f,DBString,0x2F,,0,0,
SaveSystem,maniac_font_size,f,Int32,0x30,0,0,0,
SaveSystem,maniac_spacing_char,f,Int32,0x8E,0,0,0,(Editor value - 1)
SaveSystem,maniac_spacing_line,f,Int32,0x8F,0,0,0,(Editor value - 1)

Image

Change Faceset

SaveSystem,maniac_face_index,f,Int32,0x38,0,0,0,
SaveSystem,maniac_face_anim_end_idx,f,Int32,0x39,0,0,0,
SaveSystem,maniac_face_anim_interval,f,Int32,0x3A,0,0,0,
SaveSystem,maniac_face_interval_variation,f,Int32,0x3B,0,0,0,
SaveSystem,maniac_face_frame_per_cell,f,Int32,0x3C,0,0,0,
SaveSystem,maniac_face_fpc_variation,f,Int32,0x3E,0,0,0,
SaveSystem,maniac_face_anim_options,f,Int32,0x3F,0,0,0,

Image

Flag values for 'maniac_face_anim_options'

SaveSystem,ManiacFaceAnimation,force_update,1
SaveSystem,ManiacFaceAnimation,enable_animation,2
SaveSystem,ManiacFaceAnimation,enable_turnaround,4
SaveSystem,ManiacFaceAnimation,once,8
SaveSystem,ManiacFaceAnimation,limit_interval_variation_to_positive,16
SaveSystem,ManiacFaceAnimation,limit_fpc_variation_to_positive,32
SaveSystem,ManiacFaceAnimation,apply_interval_to_turnaround,64

New Command 'Control Message'

Similar to the Battle hooks, but these are also serialized inside save data.

SaveSystem,maniac_ctrl_msg_hook_targets,f,Int32,0x32,0,0,0,
SaveSystem,maniac_ctrl_msg_callback_ce,f,Int32,0x42,0,0,0,
SaveSystem,maniac_ctrl_msg_callback_sys_number,f,Int32,0x43,0,0,0,
SaveSystem,maniac_ctrl_msg_callback_sys_text,f,Int32,0x44,0,0,0,
SaveSystem,maniac_ctrl_msg_callback_user_number,f,Int32,0x45,0,0,0,
SaveSystem,maniac_ctrl_msg_callback_user_text,f,Int32,0x46,0,0,0,

Image

Flag values for 'maniac_ctrl_msg_hook_targets'

SaveSystem,ManiacCtrlMsgHookTargets,user_event,1
SaveSystem,ManiacCtrlMsgHookTargets,create_window,2
SaveSystem,ManiacCtrlMsgHookTargets,destroy_window,4
SaveSystem,ManiacCtrlMsgHookTargets,text_rendering,8
@Ghabry Ghabry added this to the 0.8.1 milestone Feb 27, 2025
@Ghabry
Copy link
Member

Ghabry commented Feb 27, 2025

Great work, imo can be added to 0.8.1 so we have these chunks in. Though depends on #492 which gives more "Flag Flexibility" ;).

@Ghabry
Copy link
Member

Ghabry commented Mar 3, 2025

@florianessl what is maniac_face_index doing? Is that different to face_id we already save?

@florianessl
Copy link
Member Author

@Ghabry Testing revelead this to be the same as the already existing face_id, just duplicated. But it might actually store the current face index in case the animation feature is used. So would still need some investigation.

@Ghabry
Copy link
Member

Ghabry commented Mar 18, 2025

The Window stuff and Hooks is fine but I'll omit the Face part for now until more research is done. Too much stuff that confuses me. These flags: Turnaround (?). Apply Interval at Turnaround (?). Frames per Cell (?), FPC Variation (?) o_O

@jetrotal
Copy link

jetrotal commented Mar 18, 2025

It looks like an animation system to doeyes blinking animations, and maybe mouth flaps too? seems to consider random intervals between frames too.
This is what TPC help says about faceset stuff:

@msg.face

[argument]
Character string                   File name
String variable               File name

Numeric value                     File index
Variable                     File index
a..b                    Animated index a~b

.left                  Left alignment (default)
.right                  Right placement
.hrev                
.hreverse              Flip horizontally
.force                  Forced change even in situations where movement is suppressed, such as when text is being displayed.

[Arguments for animation]
.interval(a, b, c)      Wait time. Base frame a, random number increase/decrease b, flag c to limit random numbers to addition
.fpc(a, b, c)           Display time for one image. Base frame a, random number increase/decrease b, flag c to limit random numbers to addition
.once                  Do not loop animation
.loopback(a)            Loop back after finishing the specified range. Flag a for whether to set an interval by wrapping

@Ghabry
Copy link
Member

Ghabry commented Mar 18, 2025

Sure and now explain to me what "Loop back after finishing the specified range. Flag a for whether to set an interval by wrapping" is supposed to mean ;).

@jetrotal
Copy link

jetrotal commented Mar 18, 2025

hm... from maniacs discord:

// Loop interval
// Basic frame: a, random variation: b, flag: c (restricts the random change to addition only)
.interval (a) (b) (c)   

// Frame per Cell
// Basic frame: a, random variation: b, flag: c (restricts the random change to addition only)
.fpc (a) (b) (c)   

// Do not loop the animation
.once

// After the specified range is completed, reverse direction
// Flag a determines whether to insert an interval during the reversal
.loopback (a)

// Force execution during moments when normal operation is disabled (e.g., while text is being displayed)
.force

looks like a ping-pong animation style where:

  • plays a sequence of frames (1...2...3...4)
  • wait for a frames? seconds? game ticks?
  • plays the sequence in reverse (3...2...1)

Ghabry added a commit to Ghabry/easyrpg-liblcf that referenced this issue Mar 18, 2025
Mostly related to Message Options

See EasyRPG#493

Co-Authored-By: florianessl <[email protected]>
Ghabry added a commit to Ghabry/easyrpg-liblcf that referenced this issue Mar 19, 2025
Mostly related to Message Options

See EasyRPG#493

Co-Authored-By: florianessl <[email protected]>
@Ghabry Ghabry removed this from the 0.8.1 milestone Apr 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

4 participants