void Level1_Load(struct Game *game) { Dodger_Load(game); TM_AddBackgroundAction(&FadeIn, NULL, 0, "fadein"); TM_AddDelay(1000); TM_AddQueuedBackgroundAction(&Welcome, NULL, 0, "welcome"); TM_AddDelay(1000); TM_AddAction(&Walk, NULL, "walk"); TM_AddAction(&Move, NULL, "move"); TM_AddAction(&Stop, NULL, "stop"); TM_AddDelay(1000); TM_AddAction(&Letter, NULL, "letter"); TM_AddDelay(200); TM_AddQueuedBackgroundAction(&Accelerate, NULL, 0, "accelerate"); TM_AddAction(&Fly, NULL, "fly"); TM_AddDelay(500); /* first part gameplay goes here */ /* actions for generating obstacles should go here * probably as regular actions. When one ends, harder one * begins. After last one part with muffins starts. */ TM_AddAction(&GenerateObstacles, NULL, "obstacles"); TM_AddDelay(3*1000); /* wings disappear, deccelerate */ TM_AddAction(&Run, NULL, "run"); TM_AddDelay(3*1000); /* show Fluttershy's house // second part gameplay goes here // cutscene goes here */ TM_AddAction(&PassLevel, NULL, "passlevel"); // init level specific obstacle for Dodger module struct Obstacle *obst = malloc(sizeof(struct Obstacle)); obst->prev = NULL; obst->next = NULL; obst->x = 83.5; obst->y = 55; obst->speed = 1; obst->points = 0; obst->hit = false; obst->rows = 1; obst->cols = 1; obst->pos = 0; obst->blanks = 0; obst->anim_speed = 0; obst->tmp_pos = 0; obst->angle = 0; obst->callback = NULL; obst->data = NULL; obst->bitmap = &(game->level.level1.owl); game->level.dodger.obstacles = obst; }
void Gamestate_Start(struct Game *game, struct GamestateResources* data) { data->pos = 1; data->fade = 0; data->tan = 64; data->tick = 0; data->fadeout = false; data->underscore=true; strcpy(data->text, "#"); TM_AddDelay(data->timeline, 300); TM_AddQueuedBackgroundAction(data->timeline, FadeIn, TM_AddToArgs(NULL, 1, data), 0, "fadein"); TM_AddDelay(data->timeline, 1500); TM_AddAction(data->timeline, Play, TM_AddToArgs(NULL, 1, data->kbd), "playkbd"); TM_AddQueuedBackgroundAction(data->timeline, Type, TM_AddToArgs(NULL, 1, data), 0, "type"); TM_AddDelay(data->timeline, 3200); TM_AddAction(data->timeline, Play, TM_AddToArgs(NULL, 1, data->key), "playkey"); TM_AddDelay(data->timeline, 50); TM_AddAction(data->timeline, FadeOut, TM_AddToArgs(NULL, 1, data), "fadeout"); TM_AddDelay(data->timeline, 1000); TM_AddAction(data->timeline, End, NULL, "end"); al_play_sample_instance(data->sound); }