X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fanim.c;h=7f6691f0fac1f6c82a4fc7909fa457c97b3b9175;hb=58fc601f4e35d990c69afc015ed3f1061f7f5c87;hp=c2ec75f64c65a87ea17212d0a66c34773de1a0d4;hpb=c07e4d51f30c46731bf28c42954dc7726457984e;p=rocksndiamonds.git diff --git a/src/anim.c b/src/anim.c index c2ec75f6..7f6691f0 100644 --- a/src/anim.c +++ b/src/anim.c @@ -36,19 +36,23 @@ #define ANIM_CLASS_BIT_TITLE_INITIAL 0 #define ANIM_CLASS_BIT_TITLE 1 #define ANIM_CLASS_BIT_MAIN 2 -#define ANIM_CLASS_BIT_SCORES 3 -#define ANIM_CLASS_BIT_SUBMENU 4 -#define ANIM_CLASS_BIT_MENU 5 -#define ANIM_CLASS_BIT_TOONS 6 -#define ANIM_CLASS_BIT_NO_TITLE 7 +#define ANIM_CLASS_BIT_NAMES 3 +#define ANIM_CLASS_BIT_SCORES 4 +#define ANIM_CLASS_BIT_SCORESONLY 5 +#define ANIM_CLASS_BIT_SUBMENU 6 +#define ANIM_CLASS_BIT_MENU 7 +#define ANIM_CLASS_BIT_TOONS 8 +#define ANIM_CLASS_BIT_NO_TITLE 9 -#define NUM_ANIM_CLASSES 8 +#define NUM_ANIM_CLASSES 10 #define ANIM_CLASS_NONE 0 #define ANIM_CLASS_TITLE_INITIAL (1 << ANIM_CLASS_BIT_TITLE_INITIAL) #define ANIM_CLASS_TITLE (1 << ANIM_CLASS_BIT_TITLE) #define ANIM_CLASS_MAIN (1 << ANIM_CLASS_BIT_MAIN) +#define ANIM_CLASS_NAMES (1 << ANIM_CLASS_BIT_NAMES) #define ANIM_CLASS_SCORES (1 << ANIM_CLASS_BIT_SCORES) +#define ANIM_CLASS_SCORESONLY (1 << ANIM_CLASS_BIT_SCORESONLY) #define ANIM_CLASS_SUBMENU (1 << ANIM_CLASS_BIT_SUBMENU) #define ANIM_CLASS_MENU (1 << ANIM_CLASS_BIT_MENU) #define ANIM_CLASS_TOONS (1 << ANIM_CLASS_BIT_TOONS) @@ -58,6 +62,11 @@ ANIM_CLASS_SCORES | \ ANIM_CLASS_NO_TITLE) +#define ANIM_CLASS_TOONS_SCORESONLY (ANIM_CLASS_TOONS | \ + ANIM_CLASS_SCORES | \ + ANIM_CLASS_SCORESONLY | \ + ANIM_CLASS_NO_TITLE) + #define ANIM_CLASS_TOONS_MENU_MAIN (ANIM_CLASS_TOONS | \ ANIM_CLASS_MENU | \ ANIM_CLASS_MAIN | \ @@ -68,6 +77,12 @@ ANIM_CLASS_SUBMENU | \ ANIM_CLASS_NO_TITLE) +#define ANIM_CLASS_TOONS_MENU_SUBMENU_2 (ANIM_CLASS_TOONS | \ + ANIM_CLASS_MENU | \ + ANIM_CLASS_SUBMENU | \ + ANIM_CLASS_NAMES | \ + ANIM_CLASS_NO_TITLE) + // values for global animation states #define ANIM_STATE_INACTIVE 0 #define ANIM_STATE_RESTART (1 << 0) @@ -183,12 +198,13 @@ struct GameModeAnimClass { GAME_MODE_LEVELNR, ANIM_CLASS_TOONS_MENU_SUBMENU }, { GAME_MODE_INFO, ANIM_CLASS_TOONS_MENU_SUBMENU }, { GAME_MODE_SETUP, ANIM_CLASS_TOONS_MENU_SUBMENU }, - { GAME_MODE_PSEUDO_NAMESONLY, ANIM_CLASS_TOONS_MENU_SUBMENU }, - { GAME_MODE_PSEUDO_TYPENAMES, ANIM_CLASS_TOONS_MENU_SUBMENU }, + { GAME_MODE_PSEUDO_NAMESONLY, ANIM_CLASS_TOONS_MENU_SUBMENU_2 }, + { GAME_MODE_PSEUDO_TYPENAMES, ANIM_CLASS_TOONS_MENU_SUBMENU_2 }, { GAME_MODE_PSEUDO_MAINONLY, ANIM_CLASS_TOONS_MENU_MAIN }, { GAME_MODE_PSEUDO_TYPENAME, ANIM_CLASS_TOONS_MENU_MAIN }, - { GAME_MODE_PSEUDO_SCORESOLD, ANIM_CLASS_TOONS_SCORES }, - { GAME_MODE_PSEUDO_SCORESNEW, ANIM_CLASS_TOONS_SCORES }, + { GAME_MODE_PSEUDO_SCORESOLD, ANIM_CLASS_TOONS_SCORESONLY }, + { GAME_MODE_PSEUDO_SCORESNEW, ANIM_CLASS_TOONS_SCORESONLY }, + { GAME_MODE_SCOREINFO, ANIM_CLASS_TOONS_SCORES }, { GAME_MODE_EDITOR, ANIM_CLASS_NO_TITLE }, { GAME_MODE_PLAYING, ANIM_CLASS_NO_TITLE }, @@ -204,7 +220,9 @@ struct AnimClassGameMode { ANIM_CLASS_BIT_TITLE_INITIAL, GAME_MODE_TITLE_INITIAL }, { ANIM_CLASS_BIT_TITLE, GAME_MODE_TITLE }, { ANIM_CLASS_BIT_MAIN, GAME_MODE_MAIN }, + { ANIM_CLASS_BIT_NAMES, GAME_MODE_NAMES }, { ANIM_CLASS_BIT_SCORES, GAME_MODE_SCORES }, + { ANIM_CLASS_BIT_SCORESONLY, GAME_MODE_PSEUDO_SCORESONLY }, { ANIM_CLASS_BIT_SUBMENU, GAME_MODE_PSEUDO_SUBMENU }, { ANIM_CLASS_BIT_MENU, GAME_MODE_PSEUDO_MENU }, { ANIM_CLASS_BIT_TOONS, GAME_MODE_PSEUDO_TOONS }, @@ -1757,7 +1775,10 @@ static boolean DoGlobalAnim_EventAction(struct GlobalAnimPartControlInfo *part) if (event_action == ANIM_EVENT_ACTION_NONE) return FALSE; - PushUserEvent(USEREVENT_ANIM_EVENT_ACTION, event_action, 0); + if (event_action < MAX_IMAGE_FILES) + PushUserEvent(USEREVENT_ANIM_EVENT_ACTION, event_action, 0); + else + OpenURLFromHash(anim_url_hash, event_action); // check if further actions are allowed to be executed if (part->control_info.style & STYLE_MULTIPLE_ACTIONS)