void NewGame(Game *game) { game->level = 0; game->score = 0; game->NumZombies = 0; game->NumGraves = 0; game->NumVillagers = 0; ClearEntities(); InitEntityList(); ResetAllParticles(); }
void Init_All() { Init_Graphics(); InitSpriteList(); Init_Audio(); InitSoundList(); atexit(CleanUpAll); LoadFonts(); InitMessages(); LoadMouse(Cyan,Gold,DarkViolet); InitEntityList(); ResetAllParticles(); DrawSplashScreen(); LoadContent(); NewMap(32, 48,0,15); DrawMap(); }
void NewLevel(Game *game, int graves,int villagers) /*sets up a new level*/ { int i; int j; int width; int height; int sx,sy; if(BgMusic != NULL) { Mix_HaltMusic(); Mix_FreeMusic(BgMusic); } BgMusic = Mix_LoadMUS("sounds/ambiant02.ogg"); if(BgMusic == NULL) { fprintf(stderr, "Unable to Load Background Music: %s\n", SDL_GetError()); exit(1); } Mix_VolumeMusic(MIX_MAX_VOLUME); Mix_PlayMusic(BgMusic,-1);/*play my background music infinitely*/ game->level++; width = (int)sqrt(graves); if(width == 0)width = 1; height = graves / width; sx = 14 - (width/2); sy = 12 - (height/2); game->NumGraves =0; game->NumVillagers = villagers; game->NumZombies = 0; ClearEntities(); /*lets get rid of what we ain't usin*/ InitEntityList(); ResetAllParticles(); for(i = 0;i < 16;i++) SpawnTree((((rand()>>8) % 15)*2),(((rand()>>8) % 10)*2)+2, 200); for(j = 0;j < height;j++) { for(i = 0;i < width;i++) { SpawnCenter((i*2) + sx,(j*2)+ sy, 1,(rand()>>8)%2); game->NumGraves++; } } UpdateEntities(); }
void InitAll() { float bgcolor[] = {1,1,1,1}; InitSpriteList(); Init_Graphics("Aard:GTS", 800, 600, 800, 600, bgcolor); InitEntityList(); InitKeyData(); if(!Mix_Init(MIX_INIT_FLAC | MIX_INIT_MOD | MIX_INIT_MP3 | MIX_INIT_OGG)) { printf("Failed to Mix_init"); exit(1); } Mix_OpenAudio(22050,MIX_DEFAULT_FORMAT,2,1024 ); }
void loadStage(char *filename) { FILE* file; char buf[200]; int numheight; int h,w; currentStage.ingame = 1; InitEntityList(); numheight=0; file = fopen(filename, "r"); if(!file) { fprintf(stderr, "failed to open scene file %s\n", filename); exit(1); } while(fscanf(file, "%s", buf) != EOF) { switch(buf[0]) { case 's': fscanf(file, "%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f", ¤tStage.tilemap[numheight][0], ¤tStage.tilemap[numheight][1], ¤tStage.tilemap[numheight][2],¤tStage.tilemap[numheight][3],¤tStage.tilemap[numheight][4],¤tStage.tilemap[numheight][5],¤tStage.tilemap[numheight][6],¤tStage.tilemap[numheight][7],¤tStage.tilemap[numheight][8],¤tStage.tilemap[numheight][9],¤tStage.tilemap[numheight][10],¤tStage.tilemap[numheight][11],¤tStage.tilemap[numheight][12],¤tStage.tilemap[numheight][13],¤tStage.tilemap[numheight][14],¤tStage.tilemap[numheight][15],¤tStage.tilemap[numheight][16],¤tStage.tilemap[numheight][17],¤tStage.tilemap[numheight][18],¤tStage.tilemap[numheight][19]); if(numheight < SPACE_H)numheight++; break; default: fgets(buf, sizeof(buf), file); break; } } fclose(file); spawnPlayer(0,-20,0); for(h=0;h < SPACE_H;h++) { for(w=0;w < SPACE_W;w++) { if(currentStage.tilemap[h][w] == 1) { if(w > 10) { spawnEnemy1((w-10) * 4.5f,h* 14.5f, 0); }else spawnEnemy1((float)((w-10) * 4),h* 14.5f, 0); } if(currentStage.tilemap[h][w] == 2) { if(w > 10) { spawnEnemy2((w-10) * 4.5f,h* 14.5f, 0); }else spawnEnemy2((float)((w-10) * 4),h* 14.5f, 0); } if(currentStage.tilemap[h][w] == 3) { if(w > 10) { spawnEnemy3((w-10) * 4.5f,h* 14.5f, 0); }else spawnEnemy3((float)((w-10) * 4),h* 14.5f, 0); } if(currentStage.tilemap[h][w] == 4) { if(w > 10) { spawnBoss1((w-10) * 4.5f,h* 14.5f, 0); }else spawnBoss1((float)((w-10) * 4),h* 14.5f, 0); } } } }