void horseRaceInit() { udword i; horseGetNumBars(&horseBarInfo); //initialize current bar to the 0th bar localbar=0; for(i=0;i<MAX_MULTIPLAYER_PLAYERS;i++) { horseracestatus.barnum[i] = 0; horseracestatus.percent[i] = 0; horseracestatus.hrstatusstr[i][0] = 0; if (autodownloadmapRequired()) TTimerStart(&hrPlayerDropoutTimers[i],HorseRacePlayerDropoutTime*2.0f); // give double time for autodownloads else TTimerStart(&hrPlayerDropoutTimers[i],HorseRacePlayerDropoutTime); PlayersAlreadyDrawnDropped[i] = FALSE; } for (i=0;i<NUM_CHAT_LINES;i++) { chathistory[i].message[0] = 0; } listInit(&horseCrapRegion.cutouts); JustInit = TRUE; if (!hrScreensHandle) { feCallbackAddMultiple(hrCallBack); feDrawCallbackAddMultiple(hrDrawCallback); hrScreensHandle = feScreensLoad(HR_FIBFile); } if (!ShouldHaveMousePtr) mouseCursorHide(); if (singlePlayerGame) { hrBaseRegion = feScreenStart(&horseCrapRegion, HR_SingleRaceScreen); } else { hrBaseRegion = feScreenStart(&horseCrapRegion, (multiPlayerGame) ? HR_RaceScreen : HR_RaceScreenNotNetwork); } playernamefont = frFontRegister(HR_PlayerNameFont); hrRunning=TRUE; if (RGLtype == SWtype && feShouldSaveMouseCursor()) { rglFeature(RGL_SAVEBUFFER_ON); } hrBackgroundDirty = (RGLtype == SWtype) ? 10000 : 3; hrBackgroundReinit = FALSE; }
/*----------------------------------------------------------------------------- Name : gcStartup Description : This initializes the game chatting system, adding its regions to the game etc. Inputs : Outputs : Return : void ----------------------------------------------------------------------------*/ void gcStartup(void) { chathistory *dummy; chathistoryfont = frFontRegister(chathistoryfontname); listInit(&chathistorylist); dummy = memAlloc(sizeof(chathistory), "DummyChatThing", NonVolatile); dummy->messageType = GC_BUFFERSTART; listAddNode(&chathistorylist,&dummy->link,dummy); dummy = memAlloc(sizeof(chathistory), "DummyChatThing", NonVolatile); dummy->messageType = GC_BUFFEREND; listAddNode(&chathistorylist,&dummy->link,dummy); curPosition = &dummy->link; chatmutex = (void *)CreateMutex(NULL,FALSE,NULL); if (chatdrawregion!=NULL) { regChildInsert(chatdrawregion, ghMainRegion); } else { feScreensLoad(GC_FIBFile); feCallbackAddMultiple(gcCallBack); feDrawCallbackAddMultiple(gcDrawCallback); gcScreenHandle = feScreenFind("Say_Chatting_Screen"); chatdrawatom.x = gcScreenHandle->atoms[0].x; chatdrawatom.y = gcScreenHandle->atoms[0].y; chatdrawatom.width = gcScreenHandle->atoms[0].width; chatdrawatom.height = gcScreenHandle->atoms[0].height; chatdrawatom.pData = (char *)gcChatTextDraw; chatwidth = chatdrawatom.width; textentrypos.x0 = gcScreenHandle->atoms[1].x; textentrypos.y0 = gcScreenHandle->atoms[1].y; textentrypos.x1 = gcScreenHandle->atoms[1].x+gcScreenHandle->atoms[1].width; textentrypos.y1 = gcScreenHandle->atoms[1].y+gcScreenHandle->atoms[1].height; chatdrawregion = regChildAlloc(ghMainRegion, (sdword)&chatdrawatom, chatdrawatom.x, chatdrawatom.y, chatdrawatom.width, chatdrawatom.height, 0, 0); chatdrawatom.region = (void*)chatdrawregion; regDrawFunctionSet(chatdrawregion, feUserRegionDraw); chatdrawregion->drawstyle[0] = chatdrawatom.drawstyle[0]; chatdrawregion->drawstyle[1] = chatdrawatom.drawstyle[1]; chatdrawregion->atom = &chatdrawatom; } gcRunning=TRUE; }
sdword tmTradeBegin(regionhandle region, sdword ID, udword event, udword data) { sdword status = 0; sdword i; //if disabled, just return if ((tmTradeDisabled) || (playPackets) || (universePause) || (tmTradeActive)) { return 0; } // disbale rendering of main screen mrRenderMainScreen = FALSE; // clear the screen rndClear(); tmTradeActive = TRUE; tmTechListFont = frFontRegister(TM_TechListFont); tmFont = frFontRegister(TM_Font); tmCurrentSelect = 0; tmDialogPhrase = DialogWelcome; if (piePointSpecMode != PSM_Idle) { piePointModeOnOff(); } if (!tmScreensHandle) { feCallbackAddMultiple(tmCallback); //add in the callbacks feDrawCallbackAddMultiple(tmDrawCallback); tmScreensHandle = feScreensLoad(TM_FIBFile); //load in the screen } soundEventStopSFX(0.5f); /* play the intro sound */ soundEvent(NULL, UI_ManagerIntro); /* play the build manager ambient */ soundEvent(NULL, UI_Trading); tmBaseRegion = feScreenStart(region, TM_TradeScreen);//add new regions as siblings of current one tmIoSaveState = ioDisable(); tmTechSelected = -1; for (i = 0; i < TM_NUM_TECHS; i++) { if (tmTechForSale[i] == TM_TECH_IS_FOR_SALE) { tmTechSelected = i; tmtechinfo = i; tmDirtyTechInfo(); break; } } mouseCursorShow(); bitSet(tbDisable,TBDISABLE_TRADEMGR_USE); return(status); }