void sub_810CC80(void) { u16 ime; SetVBlankCallback(NULL); REG_DISPCNT = 0; REG_BG2CNT = 0; REG_BG1CNT = 0; REG_BG0CNT = 0; REG_BG2HOFS = 0; REG_BG2VOFS = 0; REG_BG1HOFS = 0; REG_BG1VOFS = 0; REG_BG0HOFS = 0; REG_BG0VOFS = 0; DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE); DmaFill32(3, 0, (void *)OAM, OAM_SIZE); DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); ResetTasks(); ResetSpriteData(); ime = REG_IME; REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; REG_IME = ime; SetVBlankCallback(VBlankCB); SetMainCallback2(sub_810CC54); if (!sub_810CD5C()) SetMainCallback2(gMain.savedCallback); }
static void CB2_GiveStarter(void) { u16 starterPoke; *GetVarPointer(VAR_STARTER_MON) = gSpecialVar_Result; starterPoke = GetStarterPokemon(gSpecialVar_Result); ScriptGiveMon(starterPoke, 5, 0, 0, 0, 0); ResetTasks(); sub_80408BC(); SetMainCallback2(CB2_StartFirstBattle); BattleTransition_Start(0); }
Bot::~Bot (void) { // this is bot destructor // SwitchChatterIcon (false); // crash on CTRL+C'ing win32 console hlds DeleteSearchNodes (); ResetTasks (); // free used botname ITERATE_ARRAY (g_botNames, j) { if (strcmp (g_botNames[j].name, STRING (pev->netname)) == 0) { g_botNames[j].isUsed = false; break; } } }
void CB2_InitResetRtcScreen(void) { REG_DISPCNT = 0; SetVBlankCallback(NULL); DmaClear16(3, PLTT, PLTT_SIZE); DmaFill16Large(3, 0, (u8 *)VRAM, 0x18000, 0x1000); ResetOamRange(0, 128); LoadOam(); ScanlineEffect_Stop(); ScanlineEffect_Clear(); ResetSpriteData(); ResetTasks(); ResetPaletteFade(); Text_LoadWindowTemplate(&gMenuTextWindowTemplate); InitMenuWindow(&gMenuTextWindowTemplate); REG_DISPCNT = 4352; SetVBlankCallback(VBlankCB_ResetRtcScreen); SetMainCallback2(CB2_ResetRtcScreen); CreateTask(Task_ResetRtcScreen, 80); }
void Bot::NewRound (void) { // this function initializes a bot after creation & at the start of each round int i = 0; // delete all allocated path nodes DeleteSearchNodes (); m_waypointOrigin = nullvec; m_destOrigin = nullvec; m_currentWaypointIndex = -1; m_currentTravelFlags = 0; m_desiredVelocity = nullvec; m_prevGoalIndex = -1; m_chosenGoalIndex = -1; m_loosedBombWptIndex = -1; m_moveToC4 = false; m_duckDefuse = false; m_duckDefuseCheckTime = 0.0f; m_prevWptIndex[0] = -1; m_prevWptIndex[1] = -1; m_prevWptIndex[2] = -1; m_prevWptIndex[3] = -1; m_prevWptIndex[4] = -1; m_navTimeset = engine->GetTime (); switch (m_personality) { case PERSONALITY_NORMAL: m_pathType = engine->RandomInt (0, 100) > 50 ? 0 : 1; break; case PERSONALITY_RUSHER: m_pathType = 0; break; case PERSONALITY_CAREFUL: m_pathType = 1; break; } // clear all states & tasks m_states = 0; ResetTasks (); m_isVIP = false; m_isLeader = false; m_hasProgressBar = false; m_canChooseAimDirection = true; m_timeTeamOrder = 0.0f; m_askCheckTime = 0.0f; m_minSpeed = 260.0f; m_prevSpeed = 0.0f; m_prevOrigin = Vector (9999.0, 9999.0, 9999.0f); m_prevTime = engine->GetTime (); m_blindRecognizeTime = engine->GetTime (); m_viewDistance = 4096.0f; m_maxViewDistance = 4096.0f; m_pickupItem = null; m_itemIgnore = null; m_itemCheckTime = 0.0f; m_breakableEntity = null; m_breakable = nullvec; m_timeDoorOpen = 0.0f; ResetCollideState (); ResetDoubleJumpState (); m_enemy = null; m_lastVictim = null; m_lastEnemy = null; m_lastEnemyOrigin = nullvec; m_trackingEdict = null; m_timeNextTracking = 0.0f; m_buttonPushTime = 0.0f; m_enemyUpdateTime = 0.0f; m_seeEnemyTime = 0.0f; m_shootAtDeadTime = 0.0f; m_oldCombatDesire = 0.0f; m_avoidGrenade = null; m_needAvoidGrenade = 0; m_lastDamageType = -1; m_voteKickIndex = 0; m_lastVoteKick = 0; m_voteMap = 0; m_doorOpenAttempt = 0; m_aimFlags = 0; m_burstShotsFired = 0; m_position = nullvec; m_idealReactionTime = g_skillTab[m_skill / 20].minSurpriseTime; m_actualReactionTime = g_skillTab[m_skill / 20].minSurpriseTime; m_targetEntity = null; m_followWaitTime = 0.0f; for (i = 0; i < Const_MaxHostages; i++) m_hostages[i] = null; for (i = 0; i < Chatter_Total; i++) m_voiceTimers[i] = -1.0f; m_isReloading = false; m_reloadState = RSTATE_NONE; m_reloadCheckTime = 0.0f; m_shootTime = engine->GetTime (); m_playerTargetTime = engine->GetTime (); m_firePause = 0.0f; m_timeLastFired = 0.0f; m_grenadeCheckTime = 0.0f; m_isUsingGrenade = false; m_skillOffset = (100 - m_skill) / 100.0f; m_blindButton = 0; m_blindTime = 0.0f; m_jumpTime = 0.0f; m_jumpFinished = false; m_isStuck = false; m_sayTextBuffer.timeNextChat = engine->GetTime (); m_sayTextBuffer.entityIndex = -1; m_sayTextBuffer.sayText[0] = 0x0; m_buyState = 0; if (!m_notKilled) // if bot died, clear all weapon stuff and force buying again { memset (&m_ammoInClip, 0, sizeof (m_ammoInClip)); memset (&m_ammo, 0, sizeof (m_ammo)); m_currentWeapon = 0; } m_knifeAttackTime = engine->GetTime () + engine->RandomFloat (1.3f, 2.6f); m_nextBuyTime = engine->GetTime () + engine->RandomFloat (0.6f, 1.2f); m_buyPending = false; m_inBombZone = false; m_shieldCheckTime = 0.0f; m_zoomCheckTime = 0.0f; m_strafeSetTime = 0.0f; m_combatStrafeDir = 0; m_fightStyle = 0; m_lastFightStyleCheck = 0.0f; m_checkWeaponSwitch = true; m_checkKnifeSwitch = true; m_buyingFinished = false; m_radioEntity = null; m_radioOrder = 0; m_defendedBomb = false; m_timeLogoSpray = engine->GetTime () + engine->RandomFloat (0.5, 2.0f); m_spawnTime = engine->GetTime (); m_lastChatTime = engine->GetTime (); pev->v_angle.y = pev->ideal_yaw; m_timeCamping = 0; m_campDirection = 0; m_nextCampDirTime = 0; m_campButtons = 0; m_soundUpdateTime = 0.0f; m_heardSoundTime = engine->GetTime (); // clear its message queue for (i = 0; i < 32; i++) m_messageQueue[i] = CMENU_IDLE; m_actMessageIndex = 0; m_pushMessageIndex = 0; // and put buying into its message queue PushMessageQueue (CMENU_BUY); PushTask (TASK_NORMAL, TASKPRI_NORMAL, -1, 0.0, true); }
void sub_81439D0(void) { u8 taskIdA; s16 taskIdC; u8 taskIdB; u16 savedIme; struct Unk201C000 *c000; sub_8144130(); SetVBlankCallback(NULL); ResetPaletteFade(); ResetTasks(); taskIdA = CreateTask(task_a_8143B38, 0); gTasks[taskIdA].data[TDA_4] = 0; gTasks[taskIdA].data[TDA_7] = 0; gTasks[taskIdA].data[TDA_11] = 0; gTasks[taskIdA].data[TDA_13] = 1; while (TRUE) { if (sub_8144ECC(0, taskIdA)) break; } taskIdC = gTasks[taskIdA].data[TDA_TASK_C_ID]; gTasks[taskIdC].data[TDC_0] = 40; Text_LoadWindowTemplate(&gWindowTemplate_81E7208); InitMenuWindow(&gWindowTemplate_81E7208); LoadPalette(&gUnknown_0840B7BC, 0x80, sizeof(gUnknown_0840B7BC)); CpuCopy16(&gUnknown_0840B7FC, (void *)(VRAM + 0xBEE0), sizeof(gUnknown_0840B7FC)); REG_BG0VOFS = 0xFFFC; taskIdB = CreateTask(task_b_81441B8, 0); gTasks[taskIdB].data[TDB_TASK_A_ID] = taskIdA; gTasks[taskIdA].data[TDA_TASK_B_ID] = taskIdB; BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); savedIme = REG_IME; REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; REG_IME = savedIme; REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; SetVBlankCallback(vblank_8143948); m4aSongNumStart(BGM_THANKFOR); SetMainCallback2(sub_814395C); gUnknown_02039325 = 0; c000 = &ewram1c000; sub_81458DC(); c000->unk88 = 0; c000->unk8A = 0; c000->unk8C = 0; gUnknown_02039322 = taskIdA; }