/* * Rendering the whole screen * Levels of render go from bottom to top */ void CApp::OnRender() { CSurface::OnDraw(Surf_Display, Surf_Background, 0, 0); CArea::area_control.OnRender(Surf_Display, -CCamera::camera_control.GetX(), -CCamera::camera_control.GetY()); ItemRenderSystem irs; irs.render(Surf_Display); RenderSystem rs; rs.render(Surf_Display); HealthSystem hps(data::FindFile("gfx/UI/Text.png").c_str(), data::FindFile("gfx/Status.png").c_str()); hps.start(); hps.render(Surf_Display); CHud::HUD.OnRender(Surf_Display); if (DebugModeOn) { CHud::HUD.DebugMode(Surf_Display); } SDL_Flip(Surf_Display); }
void CApp::OnLoop() { EntityManager &em = EntityManager::instance(); StatsComponent *stats = em.getComponentForEntity<StatsComponent>(player); int prevXP = stats->xp; CArea::area_control.OnLoop(-CCamera::camera_control.GetX(), -CCamera::camera_control.GetY()); CHud::HUD.FoWCalculation(); CFPS::fps_control.OnLoop(); CHud::HUD.OnLoop(); if (prevXP != stats->xp && CharacterSheetOn) { CHud::HUD.updateStats(); } DOTSystem dots; dots.update(); AISystem ai(player); ai.update(); MovementSystem ms; ms.update(); WeaponSystem ws; ws.update(); AnimationSystem as; as.update(); ParticleSystem particleSystem; particleSystem.update(); ProjectileSystem projectileSystem; projectileSystem.update(); TrapSystem traps; traps.update(); HealthSystem hps(data::FindFile("gfx/UI/Text.png").c_str(), data::FindFile("gfx/Status.png")); hps.start(); hps.update(); turnSystem.update(); }
void SpawnShell::consMessage(const considerStruct * con, uint32_t, uint8_t dir) { Item* item; Spawn* spawn; if (dir == DIR_CLIENT) { if (con->playerid != con->targetid) { item = m_spawns.find(con->targetid); if (item != NULL) { spawn = (Spawn*)item; // note that this spawn has been considered spawn->setConsidered(true); emit spawnConsidered(item); } } return; } QString lvl(""); QString hps(""); QString cn(""); QString msg("Faction: Your faction standing with "); //printf("%i, %i, %i, %i\n", con->unknown1[0], con->unknown1[1], con->unknown2[0], con->unknown2[1]); // is it you that you've conned? if (con->playerid == con->targetid) { // print it's deity printf("Diety: %s\n", (const char*)m_player->deityName()); // well, this is You msg += "YOU"; } else { // find the spawn if it exists item = m_spawns.find(con->targetid); // has the spawn been seen before? if (item != NULL) { Spawn* spawn = (Spawn*)item; // yes printf("Diety: %s\n", (const char*)spawn->deityName()); int changed = tSpawnChangedNone; /* maxhp and curhp are available when considering players, */ /* but not when considering mobs. */ if (con->maxHp || con->curHp) { if (spawn->NPC() == SPAWN_NPC_UNKNOWN) { spawn->setNPC(SPAWN_PLAYER); // player changed |= tSpawnChangedNPC; } spawn->setMaxHP(con->maxHp); spawn->setHP(con->curHp); changed |= tSpawnChangedHP; } else if (item->NPC() == SPAWN_NPC_UNKNOWN) { spawn->setNPC(SPAWN_NPC); changed |= tSpawnChangedNPC; } // note the updates if any if (changed != tSpawnChangedNone) { if (updateFilterFlags(item)) changed |= tSpawnChangedFilter; if (updateRuntimeFilterFlags(item)) changed |= tSpawnChangedRuntimeFilter; item->updateLastChanged(); emit changeItem(item, changed); } // note that this spawn has been considered spawn->setConsidered(true); emit spawnConsidered(item); msg += item->name(); } // end if spawn found else msg += "Spawn:" + QString::number(con->targetid, 16); } // else not yourself switch (con->level) { case 0: { cn.sprintf(" (even)"); break; } case 2: { cn.sprintf(" (green)"); break; } case 4: { cn.sprintf(" (blue)"); break; } case 13: { cn.sprintf(" (red)"); break; } case 15: { cn.sprintf(" (yellow)"); break; } case 18: { cn.sprintf(" (cyan)"); break; } default: { cn.sprintf(" (unknown: %d)", con->level); break; } } msg += cn; if (con->maxHp || con->curHp) { lvl.sprintf(" (%i/%i HP)", con->curHp, con->maxHp); msg += lvl; } msg += QString(" is: ") + print_faction(con->faction) + " (" + QString::number(con->faction) + ")!"; emit msgReceived(msg); } // end consMessage()
void MessageShell::consMessage(const uint8_t* data, size_t, uint8_t dir) { const considerStruct * con = (const considerStruct*)data; const Item* item; QString lvl(""); QString hps(""); QString cn(""); QString deity; QString msg("Your faction standing with "); // is it you that you've conned? if (con->playerid == con->targetid) { deity = m_player->deityName(); // well, this is You msg += m_player->name(); } else { // find the spawn if it exists item = m_spawnShell->findID(tSpawn, con->targetid); // has the spawn been seen before? if (item != NULL) { Spawn* spawn = (Spawn*)item; // yes deity = spawn->deityName(); msg += item->name(); } // end if spawn found else msg += "Spawn:" + QString::number(con->targetid, 16); } // else not yourself switch (con->level) { case 0: case 20: msg += " (even)"; break; case 2: msg += " (green)"; break; case 4: msg += " (blue)"; break; case 13: msg += " (red)"; break; case 15: msg += " (yellow)"; break; case 18: msg += " (cyan)"; break; default: msg += " (unknown: " + QString::number(con->level) + ")"; break; } if (!deity.isEmpty()) msg += QString(" [") + deity + "]"; if (con->maxHp || con->curHp) { lvl.sprintf(" (%i/%i HP)", con->curHp, con->maxHp); msg += lvl; } msg += QString(" is: ") + print_faction(con->faction) + " (" + QString::number(con->faction) + ")!"; m_messages->addMessage(MT_Consider, msg); } // end consMessage()