void PlayerState_Searching() { if (g_bSearchingLaunch == false) { g_iTime = GfxMathGetRandomInteger(1, 3); g_bSearchingLaunch = true; } if (g_iTime > 0) { g_iTime -= GfxTimeFrameGetCurrentDurationInSeconds(); } if (g_iTime <= 0) { g_pCave[g_iCurrentCaveTarget].bIsSearched = true; g_iPlayerInventory = GfxMathGetRandomInteger(0, 3); GfxDbgPrintf("You finished searching and you found %d artefacts\n", g_iPlayerInventory); g_iTime = 0; g_bSearchingLaunch = false; if (g_iPlayerInventory > 0) { g_TPlayerData.m_ePlayerState = g_TPlayerData.EPlayerState_GoingToBase; } else { g_TPlayerData.m_ePlayerState = g_TPlayerData.EPlayerState_GoingToCave; } } }
void CreateCave(int ActCave) { g_pCave[ActCave].iScale = GfxMathGetRandomInteger(32, 64); bool Collisioned = true; do { g_pCave[ActCave].iPosX = (GfxMathGetRandomInteger(g_pCave[ActCave].iScale, GfxGetDisplaySizeX() - g_pCave[ActCave].iScale)); g_pCave[ActCave].iPosY = (GfxMathGetRandomInteger(g_pCave[ActCave].iScale, GfxGetDisplaySizeY() - g_pCave[ActCave].iScale)); Collisioned = false; for (int e = 0; e < ActCave; e++) { if (!(g_pCave[ActCave].iPosX > g_pCave[e].iPosX + g_pCave[e].iScale + 20) && !(g_pCave[ActCave].iPosX < g_pCave[e].iPosX - g_pCave[ActCave].iScale - 20) && !(g_pCave[ActCave].iPosY < g_pCave[e].iPosY - g_pCave[ActCave].iScale - 20) && !(g_pCave[ActCave].iPosY > g_pCave[e].iPosY + g_pCave[e].iScale + 20)) { Collisioned = true; } } if (ActCave == 0) { Collisioned = false; } } while (Collisioned == true); g_pCave[ActCave].pLines = GfxLineSpriteCreate(); ArcheoStuffs::DrawCircle(g_pCave[ActCave].pLines, TGfxVec2(0, 0), g_pCave[ActCave].iScale / 2, EGfxColor_Blue, false); GfxSpriteSetPosition(g_pCave[ActCave].pLines, g_pCave[ActCave].iPosX, g_pCave[ActCave].iPosY); g_pCave[ActCave].g_pSpriteCave = GfxSpriteCreate(g_pTexture); GfxSpriteSetPivot(g_pCave[ActCave].g_pSpriteCave, 0.5, 0.5); GfxSpriteSetScale(g_pCave[ActCave].g_pSpriteCave, g_pCave[ActCave].iScale, g_pCave[ActCave].iScale); GfxSpriteSetColor(g_pCave[ActCave].g_pSpriteCave, GfxColor(0, 0, 255, 255)); GfxSpriteSetPosition(g_pCave[ActCave].g_pSpriteCave, g_pCave[ActCave].iPosX, g_pCave[ActCave].iPosY); g_iNbrCaveCreated++; }
void PlayerState_GoingToCave() { if (g_bMoving == false) { do { g_iCurrentCaveTarget = GfxMathGetRandomInteger(0, 5); } while (g_pCave[g_iCurrentCaveTarget].bIsSearched == true); GfxDbgPrintf("You are going to the cave number %d\n", g_iCurrentCaveTarget + 1); } g_bMoving = true; //----------------------------------------- TRY ---------------------------------------------------------------- ArcheoStuffs::Move(TGfxVec2(float(g_pCave[g_iCurrentCaveTarget].iPosX), float(g_pCave[g_iCurrentCaveTarget].iPosY)), TGfxVec2(float(g_TPlayerData.iPosX), float(g_TPlayerData.iPosY))); }
Event GetRandomEvent() { int iRandom = GfxMathGetRandomInteger(0, 3); switch (iRandom) { case 0: return Event_Internet; break; case 1: return Event_Fridge; break; case 2: return Event_WC; break; case 3: return Event_SoundRoom; break; default: return Event_Game; break; } }
TGfxImage * Noise(const int iSizeX, const int iSizeY) { TGfxImage * pImage = GfxImageCreate(iSizeX, iSizeY); for (int y = 0; y < iSizeY; y++) { for (int x = 0; x < iSizeX; x++) { const int iIndex = y*iSizeX + x; const unsigned int iColor = ((GfxMathGetRandomInteger(0, 1) == 0) ? (EGfxColor_Black) : (EGfxColor_White)); GfxImageGetData(pImage)[iIndex] = iColor; if ((x == 0) || (y == 0) || (x == iSizeX - 1) || (y == iSizeY - 1)) GfxImageGetData(pImage)[iIndex] = EGfxColor_Black; if ((x == 1) || (y == 1) || (x == iSizeX - 2) || (y == iSizeY - 2)) GfxImageGetData(pImage)[iIndex] = EGfxColor_Black; //if ((x == (iSizeX - 1)/2) || (y == (iSizeY - 1)/2)) // GfxImageGetData(pImage)[iIndex] = EGfxColor_White; } } return pImage; }