RectangleWH FieldCharacter::GetBoundsForInteraction() { if (IsInteractionPointExact()) { return RectangleWH(interactionLocation.GetX(), interactionLocation.GetY(), 1, 1); } RectangleWH hitboxBoundingBox = GetHitBox()->GetBoundingBox(); return RectangleWH( GetVectorAnchorPosition().GetX() + hitboxBoundingBox.GetX(), GetVectorAnchorPosition().GetY() + hitboxBoundingBox.GetY(), hitboxBoundingBox.GetWidth(), hitboxBoundingBox.GetHeight()); }
Sprite::Sprite(XmlReader *pReader) { pSpriteSheetImage = NULL; spriteDrawOffset = Vector2(0, 0); pSpriteSheetSemaphore = SDL_CreateSemaphore(1); managerSource = ManagerSourceCommonResources; pReader->StartElement("Sprite"); if (pReader->ElementExists("SpriteSheetImageId")) { spriteSheetImageId = pReader->ReadTextElement("SpriteSheetImageId"); pReader->StartElement("SpriteClipRect"); spriteClipRect = RectangleWH(pReader); pReader->EndElement(); if (pReader->ElementExists("Offset")) { pReader->StartElement("Offset"); spriteDrawOffset = Vector2(pReader); pReader->EndElement(); pReader->StartElement("OriginalSize"); originalSize = Vector2(pReader); pReader->EndElement(); } } pReader->EndElement(); }
void PromptButton::Update(int delta) { if (isEnabled) { isClicked = false; isMouseDown = false; isMouseOver = false; RectangleWH positionRect = RectangleWH(position.GetX(), position.GetY(), pTextFont->GetWidth(text), pTextFont->GetHeight(text)); bool isPressed = MouseHelper::PressedAndHeldAnywhere() || MouseHelper::DoublePressedAndHeldAnywhere(); if (MouseHelper::ClickedOnRect(positionRect)) { playSound(GetClickSoundEffect()); isClicked = true; return; } if (MouseHelper::MouseDownOnRect(positionRect) && !isPressed) { isMouseDown = true; } else if (MouseHelper::MouseOverRect(positionRect) && !isPressed) { isMouseOver = true; } } }
RectangleWH Crowd::GetBoundsForInteraction() { if (IsInteractionPointExact()) { return RectangleWH(interactionLocation.GetX(), interactionLocation.GetY(), 1, 1); } return clickPolygon.GetBoundingBox(); }
void Button::Update(int delta) { isMouseOver = false; isMouseDown = false; if (pOutEase->GetIsStarted() && !pOutEase->GetIsFinished()) { pOutEase->Update(delta); animationOffset = (int)pOutEase->GetCurrentValue(); } else if (pOutEase->GetIsFinished()) { SetIsHidden(true); } else if (pInEase->GetIsStarted() && !pInEase->GetIsFinished()) { pInEase->Update(delta); animationOffset = (int)pInEase->GetCurrentValue(); } else { if (GetUnlockedLockCount() > 0 && !pUnlockingAnimation->IsFinished()) { pUnlockingAnimation->Update(delta); AnimationSound * pSoundToPlay = pUnlockingAnimation->GetSoundToPlay(); if (pSoundToPlay != NULL) { pSoundToPlay->Play(gSoundEffectsVolume); } } else if (!GetIsDisabled()) { RectangleWH positionRect = RectangleWH(GetXPosition(), GetYPosition(), pTextFont->GetWidth(GetText()), TextHeight); bool isPressed = MouseHelper::PressedAndHeldAnywhere() || MouseHelper::DoublePressedAndHeldAnywhere(); if (MouseHelper::ClickedOnRect(positionRect)) { OnClicked(); } if (MouseHelper::MouseDownOnRect(positionRect) && !isPressed) { isMouseDown = true; } else if (MouseHelper::MouseOverRect(positionRect) && !isPressed) { isMouseOver = true; } } } }
void Dialog::Initialize( int textAreaLeft, int textAreaTop, int textAreaWidth, int textAreaHeight, double desiredPadding, MLIFont *pDialogFont) { NormalTextColor = Color::White; Dialog::textAreaRect = RectangleWH(textAreaLeft, textAreaTop, textAreaWidth, textAreaHeight); Dialog::desiredPadding = desiredPadding; Dialog::pDialogFont = pDialogFont; }
ButtonArray::ButtonArray(int maxVisibleButtonCount, int x, int y, int width, int height, int desiredPadding) : dialogRect(RectangleWH(x, y, width, height)) { this->buttonClicked = false; this->topButtonIndex = 0; this->maxVisibleButtonCount = maxVisibleButtonCount; this->visibleButtonCount = 0; this->desiredPadding = desiredPadding; ppVisibleButtons = new Button*[maxVisibleButtonCount]; pUpArrow = new Arrow((int)dialogRect.GetX() + (int)dialogRect.GetWidth() / 2 - 12, (int)dialogRect.GetY() + 10, ArrowDirectionUp, 10 /* bounceDistance */, true /* isClickable */); pDownArrow = new Arrow((int)dialogRect.GetX() + (int)dialogRect.GetWidth() / 2 - 12, (int)dialogRect.GetY() + (int)dialogRect.GetHeight() - 20 - 10, ArrowDirectionDown, 10 /* bounceDistance */, true /* isClickable */); pBackTab = new Tab(gScreenWidth - TabWidth, true /* isClickable */, "BACK", true /* isCancel */); isCancelable = false; }
Sprite::Sprite(XmlReader *pReader) { pSpriteSheetImage = NULL; pSpriteSheetSemaphore = SDL_CreateSemaphore(1); managerSource = ManagerSourceCommonResources; pReader->StartElement("Sprite"); spriteSheetImageId = pReader->ReadTextElement("SpriteSheetImageId"); pReader->StartElement("SpriteClipRect"); spriteClipRect = RectangleWH(pReader); pReader->EndElement(); pReader->EndElement(); }
void Notification::Initialize( int textAreaLeft, int textAreaTop, int textAreaWidth, int textAreaHeight, double desiredPadding, Font *pTextFont, int evidenceCenterPointX, int evidenceCenterPointY, Image *pDirectionArrow) { Notification::textAreaRect = RectangleWH(textAreaLeft, textAreaTop, textAreaWidth, textAreaHeight); Notification::desiredPadding = desiredPadding; Notification::pTextFont = pTextFont; Notification::evidenceCenterPoint = Vector2(evidenceCenterPointX, evidenceCenterPointY); Notification::pDirectionArrow = pDirectionArrow; }
void Sprite::DrawClipped(Vector2 position, RectangleWH clipRect, bool flipHorizontally, Color color) { if (GetSpriteSheetImage() == NULL) { return; } // Adjust the clip rect to account for the fact that we've eliminated blank space // that was around the source image. if (spriteDrawOffset.GetX() > 0 || spriteDrawOffset.GetY() > 0) { Vector2 oldClipRectPosition(clipRect.GetX(), clipRect.GetY()); clipRect.SetX(clipRect.GetX() - spriteDrawOffset.GetX()); clipRect.SetY(clipRect.GetY() - spriteDrawOffset.GetY()); position += Vector2(clipRect.GetX(), clipRect.GetY()) - oldClipRectPosition; if (clipRect.GetX() + clipRect.GetWidth() > GetWidth()) { clipRect.SetWidth(GetWidth() - clipRect.GetX()); } if (clipRect.GetY() + clipRect.GetHeight() > GetHeight()) { clipRect.SetHeight(GetHeight() - clipRect.GetY()); } } Vector2 pixelSnappedPosition = Vector2( (int)(position.GetX() + (originalSize.GetX() > 0 && flipHorizontally ? originalSize.GetX() - GetWidth() - spriteDrawOffset.GetX() : spriteDrawOffset.GetX())), (int)(position.GetY() + spriteDrawOffset.GetY())); GetSpriteSheetImage()->Draw( pixelSnappedPosition, RectangleWH( spriteClipRect.GetX() + clipRect.GetX(), spriteClipRect.GetY() + clipRect.GetY(), clipRect.GetWidth(), clipRect.GetHeight()), flipHorizontally, false /* flipVertically */, 1.0, color); }
void Location::CutsceneView::CameraManipulatable::SetWindowRect(RectangleWH windowRect) { RectangleWH adjustedWindowRect = RectangleWH( min(max(windowRect.GetX(), 0.0), backgroundSize.GetX() - gameWindowSize.GetX()), min(max(windowRect.GetY(), 0.0), backgroundSize.GetY() - gameWindowSize.GetY()), gameWindowSize.GetX(), gameWindowSize.GetY()); if (adjustedWindowRect != this->windowRect) { this->windowRect = adjustedWindowRect; Update(); emit WindowRectChanged(adjustedWindowRect); } }
void Sprite::DrawClipped(Vector2 position, RectangleWH clipRect, bool flipHorizontally, Color color) { if (GetSpriteSheetImage() == NULL) { return; } Vector2 pixelSnappedPosition = Vector2((int)position.GetX(), (int)position.GetY()); GetSpriteSheetImage()->Draw( pixelSnappedPosition, RectangleWH( spriteClipRect.GetX() + clipRect.GetX(), spriteClipRect.GetY() + clipRect.GetY(), clipRect.GetWidth(), clipRect.GetHeight()), flipHorizontally, false /* flipVertically */, 1.0, color); }
RectangleWH HitBox::GetBoundingBox() const { double left = numeric_limits<double>::infinity(); double top = numeric_limits<double>::infinity(); double right = -numeric_limits<double>::infinity(); double bottom = -numeric_limits<double>::infinity(); for (unsigned int i = 0; i < collidableObjectList.size(); i++) { vector<Vector2> *pVertices = collidableObjectList[i]->GetVertices(); for (unsigned int j = 0; j < pVertices->size(); j++) { Vector2 vertex = (*pVertices)[j]; if (vertex.GetX() < left) { left = vertex.GetX(); } if (vertex.GetX() > right) { right = vertex.GetX(); } if (vertex.GetY() < top) { top = vertex.GetY(); } if (vertex.GetY() > bottom) { bottom = vertex.GetY(); } } } return RectangleWH(left, top, right - left, bottom - top); }
HitBox::HitBox(XmlReader *pReader) { pReader->StartElement("HitBox"); pReader->StartElement("CollidableObjectList"); pReader->StartList("Entry"); while (pReader->MoveToNextListItem()) { collidableObjectList.push_back(new CollidableObject(pReader)); } pReader->EndElement(); if (pReader->ElementExists("AreaBoundsRectangle")) { pReader->StartElement("AreaBoundsRectangle"); areaBoundsRectangle = RectangleWH(pReader); pReader->EndElement(); } pReader->EndElement(); }
#endif int Dialog::Height = 180; // px const double DefaultMillisecondsPerCharacterUpdate = 33; const double FullStopMillisecondPause = 500; const double HalfStopMillisecondPause = 250; const double EllipsisMillisecondPause = 150; Color NormalTextColor; const Color AsideTextColor = Color(1.0, 0.529, 0.809, 0.921); //Color.SkyBlue from C# const Color EmphasisTextColor = Color(1.0, 1.0, 0.2, 0.2); const string LetterBlipSoundEffect = "LetterBlip"; RectangleWH Dialog::textAreaRect = RectangleWH(0, 0, 0, 0); double Dialog::desiredPadding = 0; MLIFont *Dialog::pDialogFont = NULL; Dialog::Dialog(const string &filePath, int timeBeforeDialogInitial, int delayBeforeContinuing, bool isInterrogation, bool isPassive, bool isConfrontation, bool canNavigateBack, bool canNavigateForward, bool presentEvidenceAutomatically, bool canStopPresentingEvidence) { this->curTextPosition = 0; this->millisecondsPerCharacterUpdate = 0; this->millisecondsSinceLastUpdate = 0; this->millisecondsUntilPauseCompletes = 0; this->millisecondsUntilAudioPauseCompletes = 0; this->lastPausePosition = -1; this->dialogEventIterator = dialogEventList.end(); this->pCurrentDialogEvent = NULL;
void TitleScreen::LoadResources() { finishedLoadingAnimations = false; MLIFont *pTitleScreenFont = CommonCaseResources::GetInstance()->GetFontManager()->GetFontFromId("MenuFont"); delete pBackgroundSprite; pBackgroundSprite = ResourceLoader::GetInstance()->LoadImage("image/TitleScreen/Background.png"); delete pTitleSprite; pTitleSprite = ResourceLoader::GetInstance()->LoadImage("image/TitleScreen/GameTitle.png"); delete pFadeInSprite; pFadeInSprite = ResourceLoader::GetInstance()->LoadImage("image/TitleScreen/FadeInBackground.png"); delete pNewGameButton; pNewGameButton = new TextButton("TitleScreen/NewGameText", pTitleScreenFont); delete pLoadGameButton; pLoadGameButton = new TextButton("TitleScreen/LoadGameText", pTitleScreenFont); delete pOptionsButton; pOptionsButton = new TextButton("TitleScreen/OptionsText", pTitleScreenFont); delete pSelectLanguageButton; pSelectLanguageButton = new TextButton("TitleScreen/SelectLanguageText", pTitleScreenFont); delete pExitButton; pExitButton = new TextButton("TitleScreen/ExitText", pTitleScreenFont); int totalButtonHeight = pNewGameButton->GetHeight() + pLoadGameButton->GetHeight() + pOptionsButton->GetHeight() + pSelectLanguageButton->GetHeight() + pExitButton->GetHeight() + ButtonSpacing * 2 + 12; int currentButtonHeight = ButtonAreaStartHeight + (gScreenHeight - ButtonAreaStartHeight - totalButtonHeight) / 2; pNewGameButton->SetX(gScreenWidth / 2, HAlignmentCenter); pNewGameButton->SetY(currentButtonHeight); currentButtonHeight += pNewGameButton->GetHeight() + ButtonSpacing; pLoadGameButton->SetX(gScreenWidth / 2, HAlignmentCenter); pLoadGameButton->SetY(currentButtonHeight); currentButtonHeight += pLoadGameButton->GetHeight() + ButtonSpacing; pOptionsButton->SetX(gScreenWidth / 2, HAlignmentCenter); pOptionsButton->SetY(currentButtonHeight); currentButtonHeight += pOptionsButton->GetHeight() + ButtonSpacing; pSelectLanguageButton->SetX(gScreenWidth / 2, HAlignmentCenter); pSelectLanguageButton->SetY(currentButtonHeight); currentButtonHeight += pSelectLanguageButton->GetHeight() + ButtonSpacing; pExitButton->SetX(gScreenWidth / 2, HAlignmentCenter); pExitButton->SetY(currentButtonHeight); currentButtonHeight += pExitButton->GetHeight() + ButtonSpacing; delete pSpikeVideo; pSpikeVideo = new Video(true /* shouldLoop */); pSpikeVideo->SetVideoAttributes("video/TitleScreenSpike.mov", 95, 83, 240, 200); pSpikeVideo->LoadFile(); delete pTwilightVideo; pTwilightVideo = new Video(true /* shouldLoop */); pTwilightVideo->SetVideoAttributes("video/TitleScreenTwilight.mov", 125, 42, 256, 360); pTwilightVideo->LoadFile(); if (CommonCaseResources::GetInstance()->GetAnimationManager()->GetAnimationFromId(CandleAnimationId) == NULL) { Image *pCandleSpriteSheet = ResourceLoader::GetInstance()->LoadImage("image/TitleScreen/CandleSpriteSheet.png"); CommonCaseResources::GetInstance()->GetSpriteManager()->AddImage(CandleSpriteSheetId, pCandleSpriteSheet); CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(CandleAnimationId, &pCandleAnimation); for (int i = 0; i < 47; i++) { char spriteId[256] = { '\0' }; snprintf(&spriteId[0], 256, CandleSpriteIdFormat, i + 1); string spriteIdString = string(spriteId); int x = (i % 16) * CandleDimensionsPx; int y = (i / 16) * CandleDimensionsPx; CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(spriteIdString, CandleSpriteSheetId, RectangleWH(x, y, CandleDimensionsPx, CandleDimensionsPx)); pCandleAnimation->AddFrame(83, spriteIdString); } } finishedLoadingAnimations = true; }
void MouseHelper::LoadCursors() { Image *pCursorSpriteSheet = ResourceLoader::GetInstance()->LoadImage("image/CursorSpriteSheet.png"); //// NORMAL CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddImage(cursorSpriteSheetId, pCursorSpriteSheet); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(normalCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 0, 30, 30)); Animation *pNormalCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(normalCursorAnimationId, &pNormalCursorAnimation); pNormalCursorAnimation->AddFrame(5000, normalCursorSpriteId01); animationByCursorTypeMap[CursorTypeNormal] = pNormalCursorAnimation; //// LOOK CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lookCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 30, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lookCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 30, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lookCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 30, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lookCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 30, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lookCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 30, 30, 30)); Animation *pLookCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(lookCursorAnimationId, &pLookCursorAnimation); pLookCursorAnimation->AddFrame(1932, lookCursorSpriteId01); pLookCursorAnimation->AddFrame(84, lookCursorSpriteId02); pLookCursorAnimation->AddFrame(84, lookCursorSpriteId03); pLookCursorAnimation->AddFrame(84, lookCursorSpriteId04); pLookCursorAnimation->AddFrame(84, lookCursorSpriteId05); animationByCursorTypeMap[CursorTypeLook] = pLookCursorAnimation; //// TALK CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(talkCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 60, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(talkCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 60, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(talkCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 60, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(talkCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 60, 30, 30)); Animation *pTalkCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(talkCursorAnimationId, &pTalkCursorAnimation); pTalkCursorAnimation->AddFrame(210, talkCursorSpriteId01); pTalkCursorAnimation->AddFrame(210, talkCursorSpriteId02); pTalkCursorAnimation->AddFrame(210, talkCursorSpriteId03); pTalkCursorAnimation->AddFrame(500, talkCursorSpriteId04); animationByCursorTypeMap[CursorTypeTalk] = pTalkCursorAnimation; //// EXIT NORTH CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 90, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 90, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 90, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 90, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 90, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthCursorSpriteId06, cursorSpriteSheetId, RectangleWH(150, 90, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthCursorSpriteId07, cursorSpriteSheetId, RectangleWH(180, 90, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthCursorSpriteId08, cursorSpriteSheetId, RectangleWH(210, 90, 30, 30)); Animation *pExitNorthCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitNorthCursorAnimationId, &pExitNorthCursorAnimation); pExitNorthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthCursorSpriteId01); pExitNorthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthCursorSpriteId02); pExitNorthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthCursorSpriteId03); pExitNorthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthCursorSpriteId04); pExitNorthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthCursorSpriteId05); pExitNorthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthCursorSpriteId06); pExitNorthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthCursorSpriteId07); pExitNorthCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitNorthCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitNorth] = pExitNorthCursorAnimation; //// EXIT NORTHEAST CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthEastCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 120, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthEastCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 120, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthEastCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 120, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthEastCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 120, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthEastCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 120, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthEastCursorSpriteId06, cursorSpriteSheetId, RectangleWH(150, 120, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthEastCursorSpriteId07, cursorSpriteSheetId, RectangleWH(180, 120, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthEastCursorSpriteId08, cursorSpriteSheetId, RectangleWH(210, 120, 30, 30)); Animation *pExitNorthEastCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitNorthEastCursorAnimationId, &pExitNorthEastCursorAnimation); pExitNorthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthEastCursorSpriteId01); pExitNorthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthEastCursorSpriteId02); pExitNorthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthEastCursorSpriteId03); pExitNorthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthEastCursorSpriteId04); pExitNorthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthEastCursorSpriteId05); pExitNorthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthEastCursorSpriteId06); pExitNorthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthEastCursorSpriteId07); pExitNorthEastCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitNorthEastCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitNorthEast] = pExitNorthEastCursorAnimation; //// EXIT EAST CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitEastCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 150, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitEastCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 150, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitEastCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 150, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitEastCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 150, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitEastCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 150, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitEastCursorSpriteId06, cursorSpriteSheetId, RectangleWH(150, 150, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitEastCursorSpriteId07, cursorSpriteSheetId, RectangleWH(180, 150, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitEastCursorSpriteId08, cursorSpriteSheetId, RectangleWH(210, 150, 30, 30)); Animation *pExitEastCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitEastCursorAnimationId, &pExitEastCursorAnimation); pExitEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitEastCursorSpriteId01); pExitEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitEastCursorSpriteId02); pExitEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitEastCursorSpriteId03); pExitEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitEastCursorSpriteId04); pExitEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitEastCursorSpriteId05); pExitEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitEastCursorSpriteId06); pExitEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitEastCursorSpriteId07); pExitEastCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitEastCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitEast] = pExitEastCursorAnimation; //// EXIT SOUTHEAST CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthEastCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 180, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthEastCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 180, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthEastCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 180, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthEastCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 180, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthEastCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 180, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthEastCursorSpriteId06, cursorSpriteSheetId, RectangleWH(150, 180, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthEastCursorSpriteId07, cursorSpriteSheetId, RectangleWH(180, 180, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthEastCursorSpriteId08, cursorSpriteSheetId, RectangleWH(210, 180, 30, 30)); Animation *pExitSouthEastCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitSouthEastCursorAnimationId, &pExitSouthEastCursorAnimation); pExitSouthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthEastCursorSpriteId01); pExitSouthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthEastCursorSpriteId02); pExitSouthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthEastCursorSpriteId03); pExitSouthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthEastCursorSpriteId04); pExitSouthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthEastCursorSpriteId05); pExitSouthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthEastCursorSpriteId06); pExitSouthEastCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthEastCursorSpriteId07); pExitSouthEastCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitSouthEastCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitSouthEast] = pExitSouthEastCursorAnimation; //// EXIT SOUTH CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 210, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 210, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 210, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 210, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 210, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthCursorSpriteId06, cursorSpriteSheetId, RectangleWH(150, 210, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthCursorSpriteId07, cursorSpriteSheetId, RectangleWH(180, 210, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthCursorSpriteId08, cursorSpriteSheetId, RectangleWH(210, 210, 30, 30)); Animation *pExitSouthCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitSouthCursorAnimationId, &pExitSouthCursorAnimation); pExitSouthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthCursorSpriteId01); pExitSouthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthCursorSpriteId02); pExitSouthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthCursorSpriteId03); pExitSouthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthCursorSpriteId04); pExitSouthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthCursorSpriteId05); pExitSouthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthCursorSpriteId06); pExitSouthCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthCursorSpriteId07); pExitSouthCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitSouthCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitSouth] = pExitSouthCursorAnimation; //// EXIT SOUTHWEST CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthWestCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 240, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthWestCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 240, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthWestCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 240, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthWestCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 240, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthWestCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 240, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthWestCursorSpriteId06, cursorSpriteSheetId, RectangleWH(150, 240, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthWestCursorSpriteId07, cursorSpriteSheetId, RectangleWH(180, 240, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitSouthWestCursorSpriteId08, cursorSpriteSheetId, RectangleWH(210, 240, 30, 30)); Animation *pExitSouthWestCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitSouthWestCursorAnimationId, &pExitSouthWestCursorAnimation); pExitSouthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthWestCursorSpriteId01); pExitSouthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthWestCursorSpriteId02); pExitSouthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthWestCursorSpriteId03); pExitSouthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthWestCursorSpriteId04); pExitSouthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthWestCursorSpriteId05); pExitSouthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthWestCursorSpriteId06); pExitSouthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitSouthWestCursorSpriteId07); pExitSouthWestCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitSouthWestCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitSouthWest] = pExitSouthWestCursorAnimation; //// EXIT WEST CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitWestCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 270, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitWestCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 270, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitWestCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 270, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitWestCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 270, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitWestCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 270, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitWestCursorSpriteId06, cursorSpriteSheetId, RectangleWH(150, 270, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitWestCursorSpriteId07, cursorSpriteSheetId, RectangleWH(180, 270, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitWestCursorSpriteId08, cursorSpriteSheetId, RectangleWH(210, 270, 30, 30)); Animation *pExitWestCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitWestCursorAnimationId, &pExitWestCursorAnimation); pExitWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitWestCursorSpriteId01); pExitWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitWestCursorSpriteId02); pExitWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitWestCursorSpriteId03); pExitWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitWestCursorSpriteId04); pExitWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitWestCursorSpriteId05); pExitWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitWestCursorSpriteId06); pExitWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitWestCursorSpriteId07); pExitWestCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitWestCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitWest] = pExitWestCursorAnimation; //// EXIT NORTHWEST CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthWestCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 300, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthWestCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 300, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthWestCursorSpriteId03, cursorSpriteSheetId, RectangleWH(60, 300, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthWestCursorSpriteId04, cursorSpriteSheetId, RectangleWH(90, 300, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthWestCursorSpriteId05, cursorSpriteSheetId, RectangleWH(120, 300, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthWestCursorSpriteId06, cursorSpriteSheetId, RectangleWH(150, 300, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthWestCursorSpriteId07, cursorSpriteSheetId, RectangleWH(180, 300, 30, 30)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitNorthWestCursorSpriteId08, cursorSpriteSheetId, RectangleWH(210, 300, 30, 30)); Animation *pExitNorthWestCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitNorthWestCursorAnimationId, &pExitNorthWestCursorAnimation); pExitNorthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthWestCursorSpriteId01); pExitNorthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthWestCursorSpriteId02); pExitNorthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthWestCursorSpriteId03); pExitNorthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthWestCursorSpriteId04); pExitNorthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthWestCursorSpriteId05); pExitNorthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthWestCursorSpriteId06); pExitNorthWestCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitNorthWestCursorSpriteId07); pExitNorthWestCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitNorthWestCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitNorthWest] = pExitNorthWestCursorAnimation; //// EXIT DOOR CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitDoorCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 330, 40, 40)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitDoorCursorSpriteId02, cursorSpriteSheetId, RectangleWH(40, 330, 40, 40)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitDoorCursorSpriteId03, cursorSpriteSheetId, RectangleWH(80, 330, 40, 40)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitDoorCursorSpriteId04, cursorSpriteSheetId, RectangleWH(120, 330, 40, 40)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitDoorCursorSpriteId05, cursorSpriteSheetId, RectangleWH(160, 330, 40, 40)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitDoorCursorSpriteId06, cursorSpriteSheetId, RectangleWH(200, 330, 40, 40)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitDoorCursorSpriteId07, cursorSpriteSheetId, RectangleWH(240, 330, 40, 40)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(exitDoorCursorSpriteId08, cursorSpriteSheetId, RectangleWH(280, 330, 40, 40)); Animation *pExitDoorCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(exitDoorCursorAnimationId, &pExitDoorCursorAnimation); pExitDoorCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, exitDoorCursorSpriteId01); pExitDoorCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitDoorCursorSpriteId02); pExitDoorCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitDoorCursorSpriteId03); pExitDoorCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitDoorCursorSpriteId04); pExitDoorCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitDoorCursorSpriteId05); pExitDoorCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitDoorCursorSpriteId06); pExitDoorCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitDoorCursorSpriteId07); pExitDoorCursorAnimation->AddFrame(exitAnimationNormalFrameDurationMs, exitDoorCursorSpriteId08); animationByCursorTypeMap[CursorTypeExitDoor] = pExitDoorCursorAnimation; //// NO EXIT CURSOR //// CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(noExitCursorSpriteId01, cursorSpriteSheetId, RectangleWH(0, 370, 30, 30)); //CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(noExitCursorSpriteId02, cursorSpriteSheetId, RectangleWH(30, 370, 30, 30)); Animation *pNoExitCursorAnimation = NULL; CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(noExitCursorAnimationId, &pNoExitCursorAnimation); pNoExitCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, noExitCursorSpriteId01); //pNoExitCursorAnimation->AddFrame(exitAnimationHoldFrameDurationMs, noExitCursorSpriteId02); animationByCursorTypeMap[CursorTypeNoExit] = pNoExitCursorAnimation; pCurrentCursorAnimation = animationByCursorTypeMap[CursorTypeNormal]; pCurrentCursorAnimation->Begin(); }
void MLIFont::Draw(const string &s, Vector2 position, Color color) { DrawInternal(s, position, color, 1.0, RectangleWH(0, 0, -1, -1)); }
void MLIFont::Draw(const string &s, Vector2 position, Color color, double scale) { DrawInternal(s, position, color, scale, RectangleWH(0, 0, -1, -1)); }
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #include "PartnerInformation.h" #include "../Utils.h" #include "../CaseInformation/Case.h" #include <math.h> Vector2 PartnerInformation::backgroundImagePosition = Vector2(60, 45); RectangleWH PartnerInformation::partnerNameRectangle = RectangleWH(63, 47, 220, 42); Vector2 PartnerInformation::profileImagePosition = Vector2(63, 92); Vector2 PartnerInformation::passiveAbilityHeadingPosition = Vector2(305, 64); Vector2 PartnerInformation::passiveAbilityDescriptionPosition = Vector2(312, 106); Vector2 PartnerInformation::activeAbilityHeadingPosition = Vector2(305, 185); Vector2 PartnerInformation::activeAbilityDescriptionPosition = Vector2(312, 228); Image *PartnerInformation::pBackgroundImage = NULL; MLIFont *PartnerInformation::pHeadingFont = NULL; MLIFont *PartnerInformation::pBodyFont = NULL; const int AbilityDescriptionWidth = 558; const int AbilityDescriptionHeight = 63; const int AbilityDescriptionExtraLineHeight = 5; void PartnerInformation::Initialize(Image *pBackgroundImage, MLIFont *pHeadingFont, MLIFont *pBodyFont)
bool MouseHelper::IsMouseInViewport() { return IsMouseInRect(RectangleWH(0, 0, gScreenWidth, gScreenHeight)); }
* * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #include "SharedUtils.h" #include "MLIException.h" #ifndef LAUNCHER RectangleWH dialogTextArea = RectangleWH(3, 370, 954, 167); double dialogPadding = 30; const double FullStopMillisecondPause = 500; const double HalfStopMillisecondPause = 250; const double EllipsisMillisecondPause = 150; #endif #ifndef CASE_CREATOR #include <algorithm> #include <cctype> #include <cstdlib> #include <limits> #else #include <QtGlobal> #endif
FieldCharacter::FieldCharacter(XmlReader *pReader) { for (int i = 0; i < FieldCharacterDirectionCount; i++) { characterStandingAnimationIds[i] = ""; characterWalkingAnimationIds[i] = ""; characterRunningAnimationIds[i] = ""; pCharacterStandingAnimations[i] = NULL; pCharacterWalkingAnimations[i] = NULL; pCharacterRunningAnimations[i] = NULL; } isBegun = false; state = FieldCharacterStateNone; pCurrentAnimation = NULL; pClickEncounter = NULL; pClickCutscene = NULL; extraHeight = 0; id = ""; name = ""; position = Vector2(0, 0); pHitBox = NULL; direction = CharacterDirectionLeft; spriteDirection = FieldCharacterDirectionSide; anchorPosition = 0; clickEncounterId = ""; clickCutsceneId = ""; isMouseOver = false; isClicked = false; pCondition = NULL; pReader->StartElement("FieldCharacter"); id = pReader->ReadTextElement("Id"); name = pReader->ReadTextElement("Name"); pReader->StartElement("CharacterStandingAnimationIds"); pReader->StartList("Entry"); while (pReader->MoveToNextListItem()) { FieldCharacterDirection direction = StringToFieldCharacterDirection(pReader->ReadTextElement("Direction")); characterStandingAnimationIds[(int)direction] = pReader->ReadTextElement("Id"); } pReader->EndElement(); pReader->StartElement("CharacterWalkingAnimationIds"); pReader->StartList("Entry"); while (pReader->MoveToNextListItem()) { FieldCharacterDirection direction = StringToFieldCharacterDirection(pReader->ReadTextElement("Direction")); characterWalkingAnimationIds[(int)direction] = pReader->ReadTextElement("Id"); } pReader->EndElement(); pReader->StartElement("CharacterRunningAnimationIds"); pReader->StartList("Entry"); while (pReader->MoveToNextListItem()) { FieldCharacterDirection direction = StringToFieldCharacterDirection(pReader->ReadTextElement("Direction")); characterRunningAnimationIds[(int)direction] = pReader->ReadTextElement("Id"); } pReader->EndElement(); pReader->StartElement("Position"); position = Vector2(pReader); pReader->EndElement(); pHitBox = new HitBox(pReader); direction = StringToCharacterDirection(pReader->ReadTextElement("Direction")); spriteDirection = StringToFieldCharacterDirection(pReader->ReadTextElement("SpriteDirection")); anchorPosition = pReader->ReadIntElement("AnchorPosition"); pReader->StartElement("ClickRect"); clickRect = RectangleWH(pReader); pReader->EndElement(); if (pReader->ElementExists("ClickEncounterId")) { clickEncounterId = pReader->ReadTextElement("ClickEncounterId"); } if (pReader->ElementExists("ClickCutsceneId")) { clickCutsceneId = pReader->ReadTextElement("ClickCutsceneId"); } if (pReader->ElementExists("InteractionLocation")) { pReader->StartElement("InteractionLocation"); interactionLocation = Vector2(pReader); pReader->EndElement(); } else { interactionLocation = Vector2(-1, -1); } interactFromAnywhere = pReader->ReadBooleanElement("InteractFromAnywhere"); if (pReader->ElementExists("Condition")) { pReader->StartElement("Condition"); pCondition = new Condition(pReader); pReader->EndElement(); } pReader->EndElement(); }
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #include "Notification.h" #include "../globals.h" #include "../mli_audio.h" #include "../MouseHelper.h" #include "../Utils.h" const int AnimationDuration = 200; const int PartnerAnimationDelay = 200; RectangleWH Notification::textAreaRect = RectangleWH(0, 0, 0, 0); double Notification::desiredPadding = 0; Font *Notification::pTextFont = NULL; Vector2 Notification::evidenceCenterPoint; Image *Notification::pDirectionArrow = NULL; void Notification::Initialize( int textAreaLeft, int textAreaTop, int textAreaWidth, int textAreaHeight, double desiredPadding, Font *pTextFont, int evidenceCenterPointX, int evidenceCenterPointY,
void FieldCharacter::Update(int delta) { RectangleWH adjustedClickRect = RectangleWH((int)(GetPosition().GetX() + GetClickRect().GetX()), (int)(GetPosition().GetY() + GetClickRect().GetY() - extraHeight), GetClickRect().GetWidth(), GetClickRect().GetHeight()); Update(delta, adjustedClickRect); }
void FieldCharacter::UpdateClickState(Vector2 offsetVector) { RectangleWH adjustedClickRect = RectangleWH((int)(GetPosition().GetX() - offsetVector.GetX() + GetClickRect().GetX()), (int)(GetPosition().GetY() - offsetVector.GetY() + GetClickRect().GetY() - extraHeight), GetClickRect().GetWidth(), GetClickRect().GetHeight()); UpdateClickState(adjustedClickRect); }
void Button::Initialize(MLIFont *pTextFont, Image *pCheckMarkImage) { Button::pTextFont = pTextFont; Button::pCheckMarkImage = pCheckMarkImage; Image *pLockSpriteSheet = ResourceLoader::GetInstance()->LoadImage("image/LockSpriteSheet.png"); CommonCaseResources::GetInstance()->GetSpriteManager()->AddImage(lockSpriteSheetId, pLockSpriteSheet); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId01, lockSpriteSheetId, RectangleWH(0, 0, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId02, lockSpriteSheetId, RectangleWH(40, 0, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId03, lockSpriteSheetId, RectangleWH(80, 0, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId04, lockSpriteSheetId, RectangleWH(120, 0, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId05, lockSpriteSheetId, RectangleWH(160, 0, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId06, lockSpriteSheetId, RectangleWH(0, 36, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId07, lockSpriteSheetId, RectangleWH(40, 36, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId08, lockSpriteSheetId, RectangleWH(80, 36, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId09, lockSpriteSheetId, RectangleWH(120, 36, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId10, lockSpriteSheetId, RectangleWH(160, 36, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId11, lockSpriteSheetId, RectangleWH(0, 72, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId12, lockSpriteSheetId, RectangleWH(40, 72, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId13, lockSpriteSheetId, RectangleWH(80, 72, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId14, lockSpriteSheetId, RectangleWH(120, 72, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId15, lockSpriteSheetId, RectangleWH(160, 72, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId16, lockSpriteSheetId, RectangleWH(0, 108, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId17, lockSpriteSheetId, RectangleWH(40, 108, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId18, lockSpriteSheetId, RectangleWH(80, 108, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId19, lockSpriteSheetId, RectangleWH(120, 108, 40, 36)); CommonCaseResources::GetInstance()->GetSpriteManager()->AddSprite(lockAnimationSpriteId20, lockSpriteSheetId, RectangleWH(160, 108, 40, 36)); pLockSprite = CommonCaseResources::GetInstance()->GetSpriteManager()->GetSpriteFromId(lockAnimationSpriteId01); CommonCaseResources::GetInstance()->GetAnimationManager()->AddAnimation(lockAnimationId, &pUnlockingAnimation); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId01); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId02); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId03); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId04); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId05); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId06); pUnlockingAnimation->AddSound("Unlocking"); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId07); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId08); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId09); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId10); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId11); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId12); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId13); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId14); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId15); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId16); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId17); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId18); pUnlockingAnimation->AddFrame(42, lockAnimationSpriteId19); pUnlockingAnimation->AddFrame(0, lockAnimationSpriteId20); }
void Video::Draw(Vector2 position, bool flipHorizontally, Color color) { Draw(position, flipHorizontally, color, RectangleWH(0, 0, width, height)); }