Global anim additions

Got a cool idea that should be in R'n'D? Let's hear it!

Moderators: Zomis, Flumminator

Post Reply
User avatar
Eizzoux
Posts: 243
Joined: Wed Oct 30, 2013 5:32 am
Location: Russia
Contact:

Global anim additions

Post by Eizzoux » Wed Jun 27, 2018 6:35 am

Just some more ideas for global anims to make them even more customizable.
1) More screen variations to draw anims in: You know you can draw anims in MAIN menu, but you can also draw some anims in MAINONLY (just main menu when you're NOT changing your name) or TYPENAME (when you ARE changing). So, what about some more variations for other screens? Like PLAYING.XXX (level number) to display different anims for every level, EDITORONLY, LEVELINFO and PROPERTIES - global anims only displaying on drawing area, global settings or element configuration screen, INFO[undermenu] and SETUP[undermenu] for each info and setup screen (INFO[ELEMENTS], SETUP[CHOOSE_ARTWORK] and others), titlescreen_(initial_)1-5 and titlemessage_(initial_)1-5.
2) More ways to "activate" global anims: For now you can only make them appear or change by clicking on them, on other anims or anywhere else. But what if we could set even more functions like pressing specific button on the keyboard or controller, UNclicking something, holding a button, aim your cursor on this global anim to make them animate and some others.
3) More functions for global anims: wonder if we could do global anims function like any button from menu, tape panel, editor toolbox and etc. Kind of like when you click on level preview you start a level.
I'm not sure if most of these ideas are really possible, but what if..?
I don't really know how to conclude this topic, sorry...
Nothing in here...*

User avatar
Holger
Site Admin
Posts: 2980
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Global anim additions

Post by Holger » Wed Jun 27, 2018 6:33 pm

Just a quick reply on idea number (3) -- that's really funny, because I just more or less implemented just that! It's not yet pushed to the Git repo, but here are some commits related to global animations that I've added recently:

Code: Select all

    added event actions (by triggering gadgets) for global animations
    
    This change adds a new option for the "graphicsinfo.conf" file for
    defining clickable global animations that trigger other actions
    (currently limited to triggering active gadget buttons on the same
    screen as the global animations). The new option works like this:
    
    global.anim_1.part_1.MAIN.anim_event:            click
    global.anim_1.part_1.MAIN.anim_event_action:     tape.button.record
    
    The second option is the new one (the first one already existed).
    When clicking this global animation (on the main menu screen), the
    game will be started (by triggering the "record" button on the tape
    recorder, which effectively starts playing the current level).

Code: Select all

    added "passthrough" option for clickable global animations
    
    This change adds a new option for the "graphicsinfo.conf" file for
    defining a "passthrough" option for global animations that causes
    clicks on clickable global animations not to be consumed, but to
    be passed-through to the underlying screen controls (or other global
    animations under the clicked global animation). The new option works
    like this:
    
    global.anim_1.part_1.MAIN.anim_event:            click
    global.anim_1.part_1.MAIN.style:                 passthrough_clicks
    
    The second option is the new one (the first one already existed).
    When clicking this global animation (on the main menu screen), the
    click will passed-through to the main menu screen to be further
    processed by screen controls like gadgets or menu buttons.

Code: Select all

    added event actions (active screen elements) for global animations
    
    This change adds more event actions to the "anim_event_action" option
    for clickable global animations, this time adding active screen elements
    (currently limited to a selection of screen elements in the main menu).
    
    For example, you can now use:
    
    global.anim_1.part_1.MAIN.anim_event:            click
    global.anim_1.part_1.MAIN.anim_event_action:     menu.button_game
    
    When clicking this global animation (on the main menu screen), the
    game will be started (by triggering the "start game" menu button).
    
    To dump a list of all available event actions for global animations,
    blindly type the "cheat mode" style shortcut ":dump-event-actions" or
    ":dea" in the main menu.

Code: Select all

    added "multiple_actions" option for clickable global animations
    
    This change adds a new option for the "graphicsinfo.conf" file to be
    able to explicitly allow multiple event actions for clickable global
    animations, which is deactivated by default to prevent unwanted side
    effects. This would make it possible to trigger two actions that make
    sense when executed at the same time, like triggering the "play" and
    "pause" buttons of the tape recorder together, for example.)
    
    The new option works like this (with "global.anim_1.part_1.MAIN" also
    being defined):
    
    global.anim_2.part_1.MAIN.anim_event:            click:anim_1.part_1
    global.anim_2.part_1.MAIN.anim_event_action:     some.action
    global.anim_2.part_1.MAIN.style:                 multiple_actions
    
    global.anim_3.part_1.MAIN.anim_event:            click:anim_1.part_1
    global.anim_3.part_1.MAIN.anim_event_action:     another.action
    
    When clicking the first global animation (on the main menu screen),
    there might be two or more other global animation which are triggered
    by clicking the first animation and which each execute their own event
    action when triggered. (The style "multiple_actions" must be defined
    for all animations that should *not* stop the chain of event actions
    to be executed, so it's easiest to just define it for all animations
    that should execute their event actions together when triggered.)
    
    This option can be combined with "passthrough_clicks".

Code: Select all

    added being able to generally set global animations to passthrough clicks
    
    Before, the "passthrough_clicks" option was limited to allow mouse
    clicks on global animations to be passed through to the mouse sensitive
    screen controls, but not to other global animations.
    
    Now, stacked global animations can all receive mouse clicks if those
    global animations overlapping them are set to "passthrough_clicks".

Code: Select all

    added event actions (by simulating keyboard input) for global animations
    
    This change adds more event actions to the "anim_event_action" option
    for clickable global animations, this time adding simulated keyboard
    input by specifying a key symbol for the key to be simulated.
    
    For example, you can now use:
    
    global.anim_1.part_1.MAIN.anim_event:            click
    global.anim_1.part_1.MAIN.anim_event_action:     XK_Return
    
    When clicking this global animation (on the main menu screen), the
    currently selected/highlighted menu item will be chosen/executed.
    
    To get the key symbol/name for the key to be simulated, just choose
    the desired key as a keyboard shortcut in the setup menu (temporarily
    only) and look at the resulting entry in the file "setup.conf" in the
    game's configuration and personal data directory.

Code: Select all

    added (optional) main menu buttons to insert or play solution tape
    
    There is a difference to the already existing tape buttons to insert
    or play a solution tape in that the main menu buttons are only drawn
    if the current level really has a solution tape, while the tape buttons
    are always drawn, regardless if the level has a solution tape or not.
HInt: These buttons are named as follows:

Code: Select all

# menu.button_insert_solution:            [NONE]
# menu.button_insert_solution.active:     [NONE]
# menu.button_play_solution:              [NONE]
# menu.button_play_solution.active:       [NONE]
and

Code: Select all

# main.button.insert_solution.x:          -1
# main.button.insert_solution.y:          -1
# main.button.play_solution.x:            -1
# main.button.play_solution.y:            -1
I will provide some example level sets later, hopefully. :-)

If you're too curious to wait for the next release version, and if you're using Windows, you can use a sneak preview version here:

https://www.artsoft.org/RELEASES/rocksn ... -versions/

Just use the latest EXE (currently this is "rocksndiamonds-20180614-1.exe"). Have fun!

Post Reply