static bool Unknown_25C4_000E(void) { Timer_Init(); if (!Video_Init()) return false; Mouse_Init(); /* Add the general tickers */ Timer_Add(Video_Tick, 1000000 / 60); Timer_Add(Timer_Tick, 1000000 / 60); g_var_7097 = -1; GFX_Init(); GFX_ClearScreen(); if (!Font_Init()) { Error( "--------------------------\n" "ERROR LOADING DATA FILE\n" "\n" "Did you copy the Dune2 1.07eu data files into the data directory ?\n" "\n" ); return false; } Font_Select(g_fontNew8p); g_palette_998A = calloc(256 * 3, sizeof(uint8)); memset(&g_palette_998A[45], 63, 3); GFX_SetPalette(g_palette_998A); Tools_RandomLCG_Seed((unsigned)time(NULL)); Widget_SetCurrentWidget(0); return true; }
/** * Initialize Timer, Video, Mouse, GFX, Fonts, Random number generator * and current Widget */ static bool OpenDune_Init(int screen_magnification, VideoScaleFilter filter) { if (!Font_Init()) { Error( "--------------------------\n" "ERROR LOADING DATA FILE\n" "\n" "Did you copy the Dune2 1.07eu data files into the data directory ?\n" "\n" ); return false; } Timer_Init(); if (!Video_Init(screen_magnification, filter)) return false; Mouse_Init(); /* Add the general tickers */ Timer_Add(Timer_Tick, 1000000 / 60, false); Timer_Add(Video_Tick, 1000000 / 60, true); g_mouseDisabled = -1; GFX_Init(); GFX_ClearScreen(); Font_Select(g_fontNew8p); g_palette_998A = calloc(256 * 3, sizeof(uint8)); memset(&g_palette_998A[45], 63, 3); GFX_SetPalette(g_palette_998A); Tools_RandomLCG_Seed((unsigned)time(NULL)); Widget_SetCurrentWidget(0); return true; }
static bool Unknown_25C4_000E() { if (!Video_Init()) return false; /* g_var_7097 = -1; */ GFX_Init(); GFX_ClearScreen(); if (!Font_Init()) { Error( "--------------------------\n" "ERROR LOADING DATA FILE\n" "\n" "Did you copy the Dune2 1.07eu data files into the data directory\n" "%s/data ?\n" "\n", g_dune_data_dir ); return false; } Font_Select(g_fontNew8p); memset(g_palette_998A, 0, 3 * 256); memset(&g_palette_998A[45], 63, 3); GFX_SetPalette(g_palette_998A); srand((unsigned)time(NULL)); Tools_RandomLCG_Seed((unsigned)time(NULL)); Widget_SetCurrentWidget(0); return true; }
static bool Skirmish_GenerateMapInner(bool generate_houses, SkirmishData* sd) { const MapInfo* mi = &g_mapInfos[0]; if (generate_houses) Skirmish_Prepare(); Game_Init(); Skirmish_GenGeneral(); Sprites_UnloadTiles(); Sprites_LoadTiles(); Tools_RandomLCG_Seed(g_skirmish.seed); Map_CreateLandscape(g_skirmish.seed); if (!generate_houses) return true; /* Create initial island. */ sd->island[0].start = 0; sd->island[0].end = 0; for (int dy = 0; dy < mi->sizeY; dy++) { for (int dx = 0; dx < mi->sizeX; dx++) { const int tx = mi->minX + dx; const int ty = mi->minY + dy; const uint16 packed = Tile_PackXY(tx, ty); sd->buildable[sd->island[0].end].x = tx; sd->buildable[sd->island[0].end].y = ty; sd->buildable[sd->island[0].end].packed = packed; sd->buildable[sd->island[0].end].parent = 0; sd->island[0].end++; } } memset(sd->islandID, 0, MAP_SIZE_MAX * MAP_SIZE_MAX * sizeof(sd->islandID[0])); Skirmish_DivideIsland(HOUSE_INVALID, 0, sd); if (sd->nislands_unused == 0) return false; /* Spawn players. */ for (HouseType houseID = HOUSE_HARKONNEN; houseID < HOUSE_MAX; houseID++) { if (g_skirmish.brain[houseID] == BRAIN_NONE) continue; if (g_skirmish.brain[houseID] == BRAIN_HUMAN) Scenario_Create_House(houseID, g_skirmish.brain[houseID], 2000, 0, 250); else { House* h = Scenario_Create_House(houseID, g_skirmish.brain[houseID], 1000, 0, 250); h->flags.isAIActive = true; if (!Skirmish_GenStructuresAI(houseID, sd)) return false; } } for (HouseType houseID = HOUSE_HARKONNEN; houseID < HOUSE_MAX; houseID++) { if (g_skirmish.brain[houseID] == BRAIN_NONE) continue; if (g_skirmish.brain[houseID] == BRAIN_HUMAN) { if (!Skirmish_GenUnitsHuman(houseID, sd)) return false; } else { Skirmish_GenUnitsAI(houseID); } } Skirmish_GenSpiceBlooms(); Skirmish_GenSandworms(); Skirmish_GenCHOAM(); Game_Prepare(); GUI_ChangeSelectionType(SELECTIONTYPE_STRUCTURE); Scenario_CentreViewport(g_playerHouseID); g_tickScenarioStart = g_timerGame; return true; }
void Mouse_SetMouseMode(uint8 mouseMode, const char *filename) { switch (mouseMode) { default: break; case INPUT_MOUSE_MODE_NORMAL: g_mouseMode = mouseMode; if (g_mouseFileID != 0xFF) { Input_Flags_ClearBits(INPUT_FLAG_KEY_RELEASE); File_Close(g_mouseFileID); } g_mouseFileID = 0xFF; g_var_701B = true; break; case INPUT_MOUSE_MODE_RECORD: if (g_mouseFileID != 0xFF) break; File_Delete(filename); File_Create(filename); Tools_RandomLCG_Seed(0x21433412); g_mouseFileID = File_Open(filename, 3); g_mouseMode = mouseMode; Input_Flags_SetBits(INPUT_FLAG_KEY_RELEASE); Input_HandleInput(0x2D); break; case INPUT_MOUSE_MODE_PLAY: if (g_mouseFileID == 0xFF) { g_mouseFileID = File_Open(filename, 1); Tools_RandomLCG_Seed(0x21433412); } g_var_701B = true; File_Read(g_mouseFileID, &g_var_7013, 2); if (File_Read(g_mouseFileID, &g_var_7015, 2) != 2) break;; if ((g_var_7013 >= 0x41 && g_var_7013 <= 0x44) || g_var_7013 == 0x2D) { File_Read(g_mouseFileID, &g_var_7017, 2); if (File_Read(g_mouseFileID, &g_var_7019, 2) == 2) { g_mouseX = g_var_7017; g_mouseY = g_var_7019; g_prevButtonState = 0; GUI_Mouse_Hide_Safe(); GUI_Mouse_Show_Safe(); g_var_701B = false; break; } g_var_701B = true; break; } g_var_701B = false; break; } g_timerInput = 0; g_mouseMode = mouseMode; }