void CBitmapUi::Draw() { if(! IsEnabled()) { return; } assert(m_pGameFramework != NULL); if(m_pGameFramework == NULL) { return; } assert(m_pUiDraw != NULL); if(m_pUiDraw == NULL) { return; } m_pUiDraw->PreRender(); UpdateCurrentState(); DrawCurrentScreenState(); m_pUiDraw->PostRender(); }
void CAmericanShermanTank::ConstructL() { iTextureObject = CTextureObject::New(GetCurrentPositionNormilized(), &CGame::Game->iImageStore->GetImage(EImageIdGroundUnitShermanTankDriving), AMERICAN_SHERMAN_TANK_WIDTH, AMERICAN_SHERMAN_TANK_HEIGHT, iZCor, 0, 1, 0, 1); //need to create bounding Hitbox iHitBox = CHitBox::New(&iCoordinates, AMERICAN_SHERMAN_TANK_NUMBER_OF_ORIGINIAL_HITBOX_POINTS, AMERICAN_SHERMAN_TANK_NUMBER_OF_ORIGINIAL_HITBOX_POINTS, &iPixelsPerMoveX, &iPixelsPerMoveY, &iObjectReflected, &iAngle, CAmericanShermanTank::CollisionPoints); SAnimationRequest lDefaultRequest;//not really used iAnimationPlayer = CAnimationPlayer::New(iTextureObject, lDefaultRequest); //smoke creator iSmokeCreator = CGeneralSmokeCreator::New(this, &iAngle, AMERICAN_SHERMAN_TANK_SMOKE_CREATOR_X, AMERICAN_SHERMAN_TANK_SMOKE_CREATOR_Y, true, GROUND_UNIT_SMOKE_DEFAULT_COLOUR, GROUND_UNIT_SMOKE_STARTS_AFTER_HEALTH_LEFT, GROUND_UNIT_SMOKE_DEFAULT_SIZE, GROUND_UNIT_SMOKE_DEFAULT_FRAMES); //another smoke creator if tank is moving to create dust iDustCreator = CGeneralSmokeCreator::New(this, &iAngle, AMERICAN_AA_SHERMAN_TANK_DUST_CREATOR_X, AMERICAN_AA_SHERMAN_TANK_DUST_CREATOR_Y, false, GROUND_UNIT_DUST_DEFAULT_COLOUR, GROUND_UNIT_DUST_STARTS_AFTER_HEALTH_LEFT, GROUND_UNIT_DUST_DEFAULT_SIZE, GROUND_UNIT_DUST_DEFAULT_FRAMES, GROUND_UNIT_DUST_DEFAULT_ANGLE_OFFSET, GROUND_UNIT_DUST_DEFAULT_SPEED, GROUND_UNIT_DUST_DEFAULT_X_EXPO,GROUND_UNIT_DUST_DEFAULT_Y_EXPO); //create GunWeapon iTankGun = CTankGun80mm::New(false, &iCoordinates, &iAngle, AMERICAN_SHERMAN_TANK_GUN_X_LOCATION, AMERICAN_SHERMAN_TANK_GUN_Y_LOCATION, &iObjectReflected, &iConflictSide); //create track sound for the tank iSoundObject = CSoundObject::New(ESoundFileId_Tank_Tracks, iHitBox); if(iObjectReflected) { iAngle = 0; iPixelsPerMoveX = iSpeed * CMath::GraphicsCosTable(iAngle); iTextureObject->ReflectOverYAxis(); iCoordinates = iTextureObject->ReturnCurrentFixPoint(); } UpdateCurrentState(EGroundUnitStateStanding);//resets the animation player }
void CJapaneseRocketman::ConstructL() { iTextureObject = CTextureObject::New(GetCurrentPositionNormilized(), &CGame::Game->iImageStore->GetImage(EImageIdGroundUnitJapaneseRocketmanStanding), JAPANESE_ROCKETMAN_WIDTH, JAPANESE_ROCKETMAN_HEIGHT, iZCor, 0, 1, 0, 1); //need to create bounding Hitbox iHitBox = CHitBox::New(&iCoordinates, BASIC_GROUND_UNIT_NUMBER_OF_ORIGINIAL_HITBOX_POINTS, BASIC_GROUND_UNIT_NUMBER_OF_PROJECTED_HITBOX_POINTS, &iPixelsPerMoveX, &iPixelsPerMoveY, &iObjectReflected, &iAngle, CJapaneseRocketman::CollisionPoints); //create GunWeapon iGrendaeLauncher = CGrenadeLauncher::New(false, &iCoordinates, &iAngle, JAPANESE_ROCKETMAN_GRENADE_LAUNCHER_X_LOCATION, JAPANESE_ROCKETMAN_GRENADE_LAUNCHER_Y_LOCATION, &iObjectReflected, &iConflictSide); //Animation Player SAnimationRequest lDefaultRequest;//not really used iAnimationPlayer = CAnimationPlayer::New(iTextureObject, lDefaultRequest); UpdateCurrentState(EGroundUnitStateStanding);//resets the animation player if(iObjectReflected) { iAngle = 0; iPixelsPerMoveX = iSpeed * CMath::GraphicsCosTable(iAngle); iTextureObject->ReflectOverYAxis(); iCoordinates = iTextureObject->ReturnCurrentFixPoint(); } iSoundObject = CSoundObject::New(ESoundFileId_Male_Painful, GetHitBox()); }