#include "anim.h"
#include "main.h"
#include "tools.h"
+#include "files.h"
#include "events.h"
#include "screens.h"
#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 NUM_ANIM_CLASSES 7
+#define NUM_ANIM_CLASSES 8
#define ANIM_CLASS_NONE 0
#define ANIM_CLASS_TITLE_INITIAL (1 << ANIM_CLASS_BIT_TITLE_INITIAL)
#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)
+#define ANIM_CLASS_NO_TITLE (1 << ANIM_CLASS_BIT_NO_TITLE)
-#define ANIM_CLASS_TOONS_SCORES (ANIM_CLASS_TOONS | \
- ANIM_CLASS_SCORES)
+#define ANIM_CLASS_TOONS_SCORES (ANIM_CLASS_TOONS | \
+ ANIM_CLASS_SCORES | \
+ ANIM_CLASS_NO_TITLE)
-#define ANIM_CLASS_TOONS_MENU_MAIN (ANIM_CLASS_TOONS | \
- ANIM_CLASS_MENU | \
- ANIM_CLASS_MAIN)
+#define ANIM_CLASS_TOONS_MENU_MAIN (ANIM_CLASS_TOONS | \
+ ANIM_CLASS_MENU | \
+ ANIM_CLASS_MAIN | \
+ ANIM_CLASS_NO_TITLE)
-#define ANIM_CLASS_TOONS_MENU_SUBMENU (ANIM_CLASS_TOONS | \
- ANIM_CLASS_MENU | \
- ANIM_CLASS_SUBMENU)
+#define ANIM_CLASS_TOONS_MENU_SUBMENU (ANIM_CLASS_TOONS | \
+ ANIM_CLASS_MENU | \
+ ANIM_CLASS_SUBMENU | \
+ ANIM_CLASS_NO_TITLE)
// values for global animation states
#define ANIM_STATE_INACTIVE 0
{ 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_EDITOR, ANIM_CLASS_NO_TITLE },
+ { GAME_MODE_PLAYING, ANIM_CLASS_NO_TITLE },
{ -1, -1 }
};
{ ANIM_CLASS_BIT_SUBMENU, GAME_MODE_PSEUDO_SUBMENU },
{ ANIM_CLASS_BIT_MENU, GAME_MODE_PSEUDO_MENU },
{ ANIM_CLASS_BIT_TOONS, GAME_MODE_PSEUDO_TOONS },
+ { ANIM_CLASS_BIT_NO_TITLE, GAME_MODE_PSEUDO_NO_TITLE },
{ -1, -1 }
};
struct GraphicInfo *c = &part->control_info;
int trigger_mask = ANIM_EVENT_ANIM_MASK | ANIM_EVENT_PART_MASK;
int mask_anim_only = mask & ANIM_EVENT_ANIM_MASK;
+ int init_event = GetGlobalAnimEventValue(c->init_event, 0);
+ int anim_event = GetGlobalAnimEventValue(c->anim_event, 0);
if (mask & ANIM_EVENT_ANY)
- return (c->init_event & ANIM_EVENT_ANY ||
- c->anim_event & ANIM_EVENT_ANY);
+ return (init_event & ANIM_EVENT_ANY ||
+ anim_event & ANIM_EVENT_ANY);
else if (mask & ANIM_EVENT_SELF)
- return (c->init_event & ANIM_EVENT_SELF ||
- c->anim_event & ANIM_EVENT_SELF);
+ return (init_event & ANIM_EVENT_SELF ||
+ anim_event & ANIM_EVENT_SELF);
else
- return ((c->init_event & trigger_mask) == mask ||
- (c->anim_event & trigger_mask) == mask ||
- (c->init_event & trigger_mask) == mask_anim_only ||
- (c->anim_event & trigger_mask) == mask_anim_only);
+ return ((init_event & trigger_mask) == mask ||
+ (anim_event & trigger_mask) == mask ||
+ (init_event & trigger_mask) == mask_anim_only ||
+ (anim_event & trigger_mask) == mask_anim_only);
}
static boolean isClickedPart(struct GlobalAnimPartControlInfo *part,
part->anim_delay_counter =
(c->anim_delay_fixed + GetSimpleRandom(c->anim_delay_random));
- part->init_event_state = c->init_event;
- part->anim_event_state = c->anim_event;
+ part->init_event_state = GetGlobalAnimEventValue(c->init_event, 0);
+ part->anim_event_state = GetGlobalAnimEventValue(c->anim_event, 0);
part->initial_anim_sync_frame =
(g->anim_global_sync ? 0 : anim_sync_frame + part->init_delay_counter);