void OsuManiaRenderer::Draw(Window& _win) { _win.driver->draw2DRectangleOutline(recti(absXpos, absYpos, absXpos + width, absYpos + height), SColor(255, 255, 255, 255)); if (layerState & VISIBLE) { this->RenderVisible(_win); } if (layerState & REPLAY) { this->RenderReplay(_win); } if (layerState & TIMINGS) { this->RenderTimings(_win); } if (layerState & HITIMINGS) { this->RenderHitTimings(_win); } if (layerState & TAPPINGDIFFS) { this->RenderTappingDiffs(_win); } }
static void _dxf_DRAW_MARKER (tdmInteractor I) { DEFDATA(I,CursorData) ; long i, mx, my ; ENTRY(("_dxf_DRAW_MARKER(0x%x)", I)); for (i = 0 ; i < PDATA(iMark) ; i++) { PDATA(pXmark)[i] = PDATA(Xmark)[i] ; PDATA(pYmark)[i] = PDATA(Ymark)[i] ; } PDATA(piMark) = PDATA(iMark) ; cpack(0xffffffff) ; for (i = 0 ; i < PDATA(iMark) ; i++) { /* round marker to long for future lrectwrite() erasure */ mx = (long)(PDATA(Xmark[i])+0.5) ; my = (long)(PDATA(Ymark[i])+0.5) ; /* draw it */ if (!CLIPPED(mx,my)) recti (mx-1, my-1, mx+1, my+1) ; } EXIT(("")); }
static void _dxf_DRAW_ZOOMBOX (tdmInteractor I, void *udata, float rot[4][4], int draw) { DEFDATA(I, tdmZoomData) ; ENTRY(("_dxf_DRAW_ZOOMBOX (0x%x, 0x%x, 0x%x, %d)",I, udata, rot, draw)); if (draw) { if (_dxf_isFlagsSet(_dxf_SERVICES_FLAGS(), SF_INVALIDATE_BACKSTORE)) _dxf_captureZoomBox(I, udata, rot); /* draw the box */ lmcolor(LMC_COLOR) ; cpack(0xffffffff) ; linewidth(1) ; recti(PDATA(x1), PDATA(y1), PDATA(x2), PDATA(y2)) ; } else _dxf_restoreZoomBox(I, udata, rot); EXIT(("")); }
void irrgamePlayerStub::run(irrgameApp* application) { //TODO: run app in other thread //start events handler UserEventsHandler->startEventProcess(); io::IReadFile* file = io::SharedFileSystem::getInstance().createReadFile( "/Users/gregorytkach/workspace/irrgame_sdk/src/vendors/libpng/pngtest.png"); video::IImage* img = video::IImage::createImage(file); video::ITexture* t = new video::COpenGLTexture(img, "/Users/gregorytkach/workspace/irrgame_sdk/src/vendors/libpng/pngbar.png", 0, VideoDriver); while (runInternal()) { utils::ITimer::tick(); events::SharedEventScheduler::getInstance().proceedNextRealTimeEvent(); VideoDriver->beginScene(); VideoDriver->draw2DImage(t, vector2di(50, 50), recti(50, 50, 150, 150)); //scenemanager->drawAll(); VideoDriver->endScene(); } //stop events handler UserEventsHandler->stopEventProcess(); }
//! draws the element and its children void CGUIButton::draw() { if (!IsVisible) return; IGUISkin* skin = Environment->getSkin(); IVideoDriver* driver = Environment->getVideoDriver(); // todo: move sprite up and text down if the pressed state has a sprite const Position2d spritePos = AbsoluteRect.getCenter(); if (!Pressed) { if (DrawBorder) skin->draw3DButtonPaneStandard(this, AbsoluteRect, &AbsoluteClippingRect); if (Image) { Position2d pos = spritePos; pos.x -= ImageRect.getWidth() / 2; pos.y -= ImageRect.getHeight() / 2; driver->draw2DImage(Image, ScaleImage ? AbsoluteRect : recti(pos, ImageRect.getSize()), ImageRect, &AbsoluteClippingRect, 0, UseAlphaChannel); } } else { if (DrawBorder) skin->draw3DButtonPanePressed(this, AbsoluteRect, &AbsoluteClippingRect); if (PressedImage) { Position2d pos = spritePos; pos.x -= PressedImageRect.getWidth() / 2; pos.y -= PressedImageRect.getHeight() / 2; if (Image == PressedImage && PressedImageRect == ImageRect) { pos.x += skin->getSize(EGDS_BUTTON_PRESSED_IMAGE_OFFSET_X); pos.y += skin->getSize(EGDS_BUTTON_PRESSED_IMAGE_OFFSET_Y); } driver->draw2DImage(PressedImage, ScaleImage ? AbsoluteRect : recti(pos, PressedImageRect.getSize()), PressedImageRect, &AbsoluteClippingRect, 0, UseAlphaChannel); } } if (SpriteBank) { // pressed / unpressed animation UINT32 state = Pressed ? (UINT32)EGBS_BUTTON_DOWN : (UINT32)EGBS_BUTTON_UP; if (ButtonSprites[state].Index != -1) { SpriteBank->draw2DSprite(ButtonSprites[state].Index, spritePos, &AbsoluteClippingRect, ButtonSprites[state].Color, ClickTime, Timer::getTime(), ButtonSprites[state].Loop, true); } // focused / unfocused animation state = Environment->hasFocus(this) ? (UINT32)EGBS_BUTTON_FOCUSED : (UINT32)EGBS_BUTTON_NOT_FOCUSED; if (ButtonSprites[state].Index != -1) { SpriteBank->draw2DSprite(ButtonSprites[state].Index, spritePos, &AbsoluteClippingRect, ButtonSprites[state].Color, FocusTime, Timer::getTime(), ButtonSprites[state].Loop, true); } // mouse over / off animation if (isEnabled()) { state = Environment->getHovered() == this ? (UINT32)EGBS_BUTTON_MOUSE_OVER : (UINT32)EGBS_BUTTON_MOUSE_OFF; if (ButtonSprites[state].Index != -1) { SpriteBank->draw2DSprite(ButtonSprites[state].Index, spritePos, &AbsoluteClippingRect, ButtonSprites[state].Color, HoverTime, Timer::getTime(), ButtonSprites[state].Loop, true); } } } if (Text.size()) { IGUIFont* font = getActiveFont(); rect<SINT32> rect = AbsoluteRect; if (Pressed) { rect.UpperLeftCorner.x += skin->getSize(EGDS_BUTTON_PRESSED_TEXT_OFFSET_X); rect.UpperLeftCorner.y += skin->getSize(EGDS_BUTTON_PRESSED_TEXT_OFFSET_Y); } if (font) font->draw(Text, rect, skin->getColor(isEnabled() ? EGDC_BUTTON_TEXT : EGDC_GRAY_TEXT), true, true, &AbsoluteClippingRect); } IGUIElement::draw(); }
recti getCorrectROIForFullImage(const cv::Mat& img, int dst) { return recti(dst,dst,img.cols-2*dst, img.rows-2*dst); }
magnify () { struct pixrect *prr, *prw, *prc; RCOLORS * rcolors; WCOLORS * wcolors; WCOLORS * ccolors; int x1, x2, y1, y2; int last_x1, last_x2; int last_y1, last_y2; int x, y; int i, j, k, l; prr = mem_create ( 40, 40, 8 ); prw = mem_create ( 200, 200, 8 ); prc = mem_create ( 200, 200, 8 ); rcolors = (RCOLORS *)mpr_d(prr)->md_image; wcolors = (WCOLORS *)mpr_d(prw)->md_image; ccolors = (WCOLORS *)mpr_d(prw)->md_image; for ( i = 0; i < 200; i++ ) for ( j = 0; j < 200; j++ ) { wcolors[i][j] = ccolors[i][j] = 8; } for ( i = (1<<3); i < (1<<3)+8; i++ ) mapcolor ( i, 0, 0, 0 ); for ( i = (2<<3); i < (2<<3)+8; i++ ) mapcolor ( i, 255, 0, 0 ); for ( i = (3<<3); i < (3<<3)+8; i++ ) mapcolor ( i, 0, 255, 0 ); for ( i = (4<<3); i < (4<<3)+8; i++ ) mapcolor ( i, 255, 255, 0 ); for ( i = (5<<3); i < (5<<3)+8; i++ ) mapcolor ( i, 0, 0, 255 ); for ( i = (6<<3); i < (6<<3)+8; i++ ) mapcolor ( i, 255, 0, 255 ); for ( i = (7<<3); i < (7<<3)+8; i++ ) mapcolor ( i, 0, 255, 255 ); for ( i = (8<<3); i < (8<<3)+8; i++ ) mapcolor ( i, 255, 255, 255 ); pw_putcolormap ( pw, 0, 64, red, green, blue ); writemask ( 7 << 3 ); last_x1 = last_x2 = 0; last_y1 = last_y2 = 0; for ( ;; ) { /* for ( dev = 0; dev == 0; ) { */ notify_dispatch (); x = dev_x; y = dev_y; if ( x < 20 || x > (width-20) ) continue; if ( y < 20 || y > (height-20) ) continue; x1 = x - 20; x2 = x + 20; y1 = y - 20; y2 = y + 20; if ( x1 == last_x1 && y1 == last_y1 ) continue; color = 0; recti ( last_x1, last_y1, last_x1+40, last_y1+40 ); color = 16; recti ( x1, y1, x2, y2 ); last_x1 = x1; last_y1 = y1; /* } */ if ( dev == MS_LEFT ) break; pw_write ( pw, last_x2, last_y2, 200, 200, PIX_SRC, prc, 0, 0 ); pw_read ( prr, 0, 0, 40, 40, PIX_SRC, pw, x-20, height-y-20 ); recti ( x1, y1, x2, y2 ); for ( i = 0; i < 40; i++ ) { for ( j = 0; j < 40; j++ ) { for ( k = 1; k <= 3; k++ ) for ( l = 0; l <= 4; l++ ) { wcolors[i*5+k][j*5+l] = ((rcolors[i][j]&7)+1) << 3; } } } x1 = x + 60; if ( x1 > (width-200) ) x1 = x - 260; x2 = x1 + 199; y1 = y - 100; if ( y1 < 0 ) y1 = 0; if ( y1 > (height-200) ) y1 = height-200; y2 = y1 + 199; pw_write ( pw, x1, height - y2, 200, 200, PIX_SRC, prw, 0, 0 ); color = 16; recti ( x1, y1, x2, y2 ); last_x2 = x1; last_y2 = height - y2; } pr_destroy ( prr ); pr_destroy ( prw ); pr_destroy ( prc ); clear (); writemask ( -1 ); }
PhysicsSim::PhysicsSim(stringw windowTitle, uint width, uint height, bool render) { broadphase = new btDbvtBroadphase(); collisionConfiguration = new btDefaultCollisionConfiguration(); dispatcher = new btCollisionDispatcher(collisionConfiguration); btGImpactCollisionAlgorithm::registerAlgorithm(dispatcher); solver = new btSequentialImpulseConstraintSolver; dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,broadphase,solver,collisionConfiguration); setGravity(9.8); SIrrlichtCreationParameters params = SIrrlichtCreationParameters(); params.EventReceiver = this; #ifndef NO_GRAPHICS if(render) { params.Vsync = true; params.DriverType = video::EDT_OPENGL; params.WindowSize = core::dimension2d<u32>(width, height); params.Fullscreen = true; params.AntiAlias = 4; params.Stencilbuffer = false; } else params.DriverType = video::EDT_NULL; #else params.DriverType = video::EDT_NULL; #endif dvc = createDeviceEx(params); dvc->getLogger()->setLogLevel(ELL_INFORMATION); dvc->setWindowCaption(windowTitle.c_str()); dvc->getCursorControl()->setVisible(false); driver = dvc->getVideoDriver(); smgr = dvc->getSceneManager(); env = dvc->getGUIEnvironment(); pipImage = env->addImage(recti(10,10,200,200)); pipImage->setScaleImage(true); pipImage->setUseAlphaChannel(false); pipImage->setVisible(false); for (u32 i=0; i<KEY_KEY_CODES_COUNT; ++i) KeyIsDown[i] = false; lasttick = 0; paused = false; testSphere = NULL; terrain = NULL; mediaDirectory = L"./"; srand(time(NULL)); }
void GUIChat::OnResize() { wChat->setRelativePosition(mainGame->ResizeWin(305, 615, 1020, 640, true)); ebChatInput->setRelativePosition(recti(3, 2, mainGame->window_size.Width - wChat->getRelativePosition().UpperLeftCorner.X - 6, 22)); }
void Game::DrawSpec() { if(showcard) { switch(showcard) { case 1: { driver->draw2DImage(imageManager.GetTexture(showcardcode), position2di(574, 150)); driver->draw2DImage(imageManager.tMask, recti(574, 150, 574 + (showcarddif > 177 ? 177 : showcarddif), 404), recti(254 - showcarddif, 0, 254 - (showcarddif > 177 ? showcarddif - 177 : 0), 254), 0, 0, true); showcarddif += 15; if(showcarddif >= 254) { showcard = 2; showcarddif = 0; } break; } case 2: { driver->draw2DImage(imageManager.GetTexture(showcardcode), position2di(574, 150)); driver->draw2DImage(imageManager.tMask, recti(574 + showcarddif, 150, 761, 404), recti(0, 0, 177 - showcarddif, 254), 0, 0, true); showcarddif += 15; if(showcarddif >= 177) { showcard = 0; } break; } case 3: { driver->draw2DImage(imageManager.GetTexture(showcardcode), position2di(574, 150)); driver->draw2DImage(imageManager.tNegated, recti(536 + showcarddif, 141 + showcarddif, 793 - showcarddif, 397 - showcarddif), recti(0, 0, 128, 128), 0, 0, true); if(showcarddif < 64) showcarddif += 4; break; } case 4: { matManager.c2d[0] = (showcarddif << 24) | 0xffffff; matManager.c2d[1] = (showcarddif << 24) | 0xffffff; matManager.c2d[2] = (showcarddif << 24) | 0xffffff; matManager.c2d[3] = (showcarddif << 24) | 0xffffff; driver->draw2DImage(imageManager.GetTexture(showcardcode), recti(574, 154, 751, 404), recti(0, 0, 177, 254), 0, matManager.c2d, true); if(showcarddif < 255) showcarddif += 17; break; } case 5: { matManager.c2d[0] = (showcarddif << 25) | 0xffffff; matManager.c2d[1] = (showcarddif << 25) | 0xffffff; matManager.c2d[2] = (showcarddif << 25) | 0xffffff; matManager.c2d[3] = (showcarddif << 25) | 0xffffff; driver->draw2DImage(imageManager.GetTexture(showcardcode), recti(662 - showcarddif * 0.69685f, 277 - showcarddif, 662 + showcarddif * 0.69685f, 277 + showcarddif), recti(0, 0, 177, 254), 0, matManager.c2d, true); if(showcarddif < 127) showcarddif += 9; break; } case 6: { driver->draw2DImage(imageManager.GetTexture(showcardcode), position2di(574, 150)); driver->draw2DImage(imageManager.tNumber, recti(536 + showcarddif, 141 + showcarddif, 793 - showcarddif, 397 - showcarddif), recti((showcardp % 5) * 64, (showcardp / 5) * 64, (showcardp % 5 + 1) * 64, (showcardp / 5 + 1) * 64), 0, 0, true); if(showcarddif < 64) showcarddif += 4; break; } case 7: { core::position2d<s32> corner[4]; float y = sin(showcarddif * 3.1415926f / 180.0f) * 254; corner[0] = core::position2d<s32>(574 - (254 - y) * 0.3f, 404 - y); corner[1] = core::position2d<s32>(751 + (254 - y) * 0.3f, 404 - y); corner[2] = core::position2d<s32>(574, 404); corner[3] = core::position2d<s32>(751, 404); irr::gui::Draw2DImageQuad(driver, imageManager.GetTexture(showcardcode), rect<s32>(0, 0, 177, 254), corner); showcardp++; showcarddif += 9; if(showcarddif >= 90) showcarddif = 90; if(showcardp == 60) { showcardp = 0; showcarddif = 0; } break; } case 100: { if(showcardp < 60) { driver->draw2DImage(imageManager.tHand[(showcardcode >> 16) & 0x3], position2di(615, showcarddif)); driver->draw2DImage(imageManager.tHand[showcardcode & 0x3], position2di(615, 540 - showcarddif)); float dy = -0.333333f * showcardp + 10; showcardp++; if(showcardp < 30) showcarddif += (int)dy; } else showcard = 0; break; } case 101: { const wchar_t* lstr = L""; switch(showcardcode) { case 1: lstr = L"You Win!"; break; case 2: lstr = L"You Lose!"; break; case 3: lstr = L"Draw Game"; break; case 4: lstr = L"Draw Phase"; break; case 5: lstr = L"Standby Phase"; break; case 6: lstr = L"Main Phase 1"; break; case 7: lstr = L"Battle Phase"; break; case 8: lstr = L"Main Phase 2"; break; case 9: lstr = L"End Phase"; break; case 10: lstr = L"Next Players Turn"; break; case 11: lstr = L"Duel Start"; break; case 12: lstr = L"Duel1 Start"; break; case 13: lstr = L"Duel2 Start"; break; case 14: lstr = L"Duel3 Start"; break; } auto pos = lpcFont->getDimension(lstr); if(showcardp < 10) { int alpha = (showcardp * 25) << 24; lpcFont->draw(lstr, recti(651 - pos.Width / 2 - (9 - showcardp) * 40, 291, 950, 370), alpha); lpcFont->draw(lstr, recti(650 - pos.Width / 2 - (9 - showcardp) * 40, 290, 950, 370), alpha | 0xffffff); } else if(showcardp < showcarddif) { recti loc = recti(650 - pos.Width / 2, 290, 950, 370); lpcFont->draw(lstr, recti(651 - pos.Width / 2, 291, 950, 370), 0xff000000); lpcFont->draw(lstr, loc, 0xffffffff); if(dInfo.vic_string && (showcardcode == 1 || showcardcode == 2)) { driver->draw2DRectangle(0xa0000000, recti(540, 320, 800, 340)); guiFont->draw(dInfo.vic_string, recti(502, 321, 840, 340), 0xff000000, true, true); guiFont->draw(dInfo.vic_string, recti(500, 320, 840, 340), 0xffffffff, true, true); } } else if(showcardp < showcarddif + 10) { int alpha = ((showcarddif + 10 - showcardp) * 25) << 24; lpcFont->draw(lstr, recti(651 - pos.Width / 2 + (showcardp - showcarddif) * 40, 291, 950, 370), alpha); lpcFont->draw(lstr, recti(650 - pos.Width / 2 + (showcardp - showcarddif) * 40, 290, 950, 370), alpha | 0xffffff); } showcardp++; break; } }
void Game::DrawMisc() { static irr::core::vector3df act_rot(0, 0, 0); irr::core::matrix4 im, ic, it; act_rot.Z += 0.02f; im.setRotationRadians(act_rot); matManager.mTexture.setTexture(0, imageManager.tAct); driver->setMaterial(matManager.mTexture); if(dField.deck_act) { im.setTranslation(vector3df(matManager.vFields[0].Pos.X - (matManager.vFields[0].Pos.X - matManager.vFields[1].Pos.X)/2, matManager.vFields[0].Pos.Y - (matManager.vFields[0].Pos.Y - matManager.vFields[3].Pos.Y)/2, dField.deck[0].size() * 0.01f + 0.02f)); driver->setTransform(irr::video::ETS_WORLD, im); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); } if(dField.grave_act) { im.setTranslation(vector3df(matManager.vFields[4].Pos.X - (matManager.vFields[4].Pos.X - matManager.vFields[5].Pos.X)/2, matManager.vFields[4].Pos.Y - (matManager.vFields[4].Pos.Y - matManager.vFields[6].Pos.Y)/2, dField.grave[0].size() * 0.01f + 0.02f)); driver->setTransform(irr::video::ETS_WORLD, im); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); } if(dField.remove_act) { im.setTranslation(vector3df(matManager.vFields[12].Pos.X - (matManager.vFields[12].Pos.X - matManager.vFields[13].Pos.X)/2, matManager.vFields[12].Pos.Y - (matManager.vFields[12].Pos.Y - matManager.vFields[14].Pos.Y)/2, dField.remove[0].size() * 0.01f + 0.02f)); driver->setTransform(irr::video::ETS_WORLD, im); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); } if(dField.extra_act) { im.setTranslation(vector3df(matManager.vFields[8].Pos.X - (matManager.vFields[8].Pos.X - matManager.vFields[9].Pos.X)/2, matManager.vFields[8].Pos.Y - (matManager.vFields[8].Pos.Y - matManager.vFields[10].Pos.Y)/2, dField.extra[0].size() * 0.01f + 0.02f)); driver->setTransform(irr::video::ETS_WORLD, im); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); } if(dField.pzone_act) { im.setTranslation(vector3df(matManager.vFields[60].Pos.X - (matManager.vFields[60].Pos.X - matManager.vFields[61].Pos.X)/2, matManager.vFields[60].Pos.Y - (matManager.vFields[60].Pos.Y - matManager.vFields[62].Pos.Y)/2, 0.03f)); driver->setTransform(irr::video::ETS_WORLD, im); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); } if(dField.chains.size() > 1) { for(size_t i = 0; i < dField.chains.size(); ++i) { if(dField.chains[i].solved) break; matManager.mTRTexture.setTexture(0, imageManager.tChain); matManager.mTRTexture.AmbientColor = 0xffffff00; ic.setRotationRadians(act_rot); ic.setTranslation(dField.chains[i].chain_pos); driver->setMaterial(matManager.mTRTexture); driver->setTransform(irr::video::ETS_WORLD, ic); driver->drawVertexPrimitiveList(matManager.vSymbol, 4, matManager.iRectangle, 2); it.setScale(0.6f); it.setTranslation(dField.chains[i].chain_pos); matManager.mTRTexture.setTexture(0, imageManager.tNumber); matManager.vChainNum[0].TCoords = vector2df(0.19375f * (i % 5), 0.2421875f * (i / 5)); matManager.vChainNum[1].TCoords = vector2df(0.19375f * (i % 5 + 1), 0.2421875f * (i / 5)); matManager.vChainNum[2].TCoords = vector2df(0.19375f * (i % 5), 0.2421875f * (i / 5 + 1)); matManager.vChainNum[3].TCoords = vector2df(0.19375f * (i % 5 + 1), 0.2421875f * (i / 5 + 1)); driver->setMaterial(matManager.mTRTexture); driver->setTransform(irr::video::ETS_WORLD, it); driver->drawVertexPrimitiveList(matManager.vChainNum, 4, matManager.iRectangle, 2); } } //lp bar if((dInfo.turn % 2 && dInfo.isFirst) || (!(dInfo.turn % 2) && !dInfo.isFirst)) { driver->draw2DRectangle(0xa0000000, recti(327, 8, 630, 51)); driver->draw2DRectangleOutline(recti(327, 8, 630, 51), 0xffff8080); } else { driver->draw2DRectangle(0xa0000000, recti(689, 8, 991, 51)); driver->draw2DRectangleOutline(recti(689, 8, 991, 51), 0xffff8080); } driver->draw2DImage(imageManager.tLPFrame, recti(330, 10, 629, 30), recti(0, 0, 200, 20), 0, 0, true); driver->draw2DImage(imageManager.tLPFrame, recti(691, 10, 990, 30), recti(0, 0, 200, 20), 0, 0, true); if(dInfo.lp[0] >= 8000) driver->draw2DImage(imageManager.tLPBar, recti(335, 12, 625, 28), recti(0, 0, 16, 16), 0, 0, true); else driver->draw2DImage(imageManager.tLPBar, recti(335, 12, 335 + 290 * dInfo.lp[0] / 8000, 28), recti(0, 0, 16, 16), 0, 0, true); if(dInfo.lp[1] >= 8000) driver->draw2DImage(imageManager.tLPBar, recti(696, 12, 986, 28), recti(0, 0, 16, 16), 0, 0, true); else driver->draw2DImage(imageManager.tLPBar, recti(986 - 290 * dInfo.lp[1] / 8000, 12, 986, 28), recti(0, 0, 16, 16), 0, 0, true); if(lpframe) { dInfo.lp[lpplayer] -= lpd; myswprintf(dInfo.strLP[lpplayer], L"%d", dInfo.lp[lpplayer]); lpccolor -= 0x19000000; lpframe--; } if(lpcstring) { if(lpplayer == 0) { lpcFont->draw(lpcstring, recti(400, 470, 920, 520), lpccolor | 0x00ffffff, true, false, 0); lpcFont->draw(lpcstring, recti(400, 472, 922, 520), lpccolor, true, false, 0); } else { lpcFont->draw(lpcstring, recti(400, 160, 920, 210), lpccolor | 0x00ffffff, true, false, 0); lpcFont->draw(lpcstring, recti(400, 162, 922, 210), lpccolor, true, false, 0); } } if(!dInfo.isReplay && dInfo.player_type < 7 && dInfo.time_limit) { driver->draw2DRectangle(recti(525, 34, 525 + dInfo.time_left[0] * 100 / dInfo.time_limit, 44), 0xa0e0e0e0, 0xa0e0e0e0, 0xa0c0c0c0, 0xa0c0c0c0); driver->draw2DRectangleOutline(recti(525, 34, 625, 44), 0xffffffff); driver->draw2DRectangle(recti(795 - dInfo.time_left[1] * 100 / dInfo.time_limit, 34, 795, 44), 0xa0e0e0e0, 0xa0e0e0e0, 0xa0c0c0c0, 0xa0c0c0c0); driver->draw2DRectangleOutline(recti(695, 34, 795, 44), 0xffffffff); } numFont->draw(dInfo.strLP[0], recti(330, 11, 629, 30), 0xff000000, true, false, 0); numFont->draw(dInfo.strLP[0], recti(330, 12, 631, 30), 0xffffff00, true, false, 0); numFont->draw(dInfo.strLP[1], recti(691, 11, 990, 30), 0xff000000, true, false, 0); numFont->draw(dInfo.strLP[1], recti(691, 12, 992, 30), 0xffffff00, true, false, 0); if(!dInfo.isTag || !dInfo.tag_player[0]) textFont->draw(dInfo.hostname, recti(335, 31, 629, 50), 0xffffffff, false, false, 0); else textFont->draw(dInfo.hostname_tag, recti(335, 31, 629, 50), 0xffffffff, false, false, 0); if(!dInfo.isTag || !dInfo.tag_player[1]) { auto cld = textFont->getDimension(dInfo.clientname); textFont->draw(dInfo.clientname, recti(986 - cld.Width, 31, 986, 50), 0xffffffff, false, false, 0); } else { auto cld = textFont->getDimension(dInfo.clientname_tag); textFont->draw(dInfo.clientname_tag, recti(986 - cld.Width, 31, 986, 50), 0xffffffff, false, false, 0); } driver->draw2DRectangle(recti(632, 10, 688, 30), 0x00000000, 0x00000000, 0xffffffff, 0xffffffff); driver->draw2DRectangle(recti(632, 30, 688, 50), 0xffffffff, 0xffffffff, 0x00000000, 0x00000000); lpcFont->draw(dataManager.GetNumString(dInfo.turn), recti(635, 5, 685, 40), 0x80000000, true, false, 0); lpcFont->draw(dataManager.GetNumString(dInfo.turn), recti(635, 5, 687, 40), 0x8000ffff, true, false, 0); ClientCard* pcard; for(int i = 0; i < 5; ++i) { pcard = dField.mzone[0][i]; if(pcard && pcard->code != 0) { int m = 493 + i * 85; adFont->draw(L"/", recti(m - 4, 416, m + 4, 436), 0xff000000, true, false, 0); adFont->draw(L"/", recti(m - 3, 417, m + 5, 437), 0xffffffff, true, false, 0); int w = adFont->getDimension(pcard->atkstring).Width; adFont->draw(pcard->atkstring, recti(m - 5 - w, 416, m - 5, 436), 0xff000000, false, false, 0); adFont->draw(pcard->atkstring, recti(m - 4 - w, 417, m - 4, 437), pcard->attack > pcard->base_attack ? 0xffffff00 : pcard->attack < pcard->base_attack ? 0xffff2090 : 0xffffffff , false, false, 0); w = adFont->getDimension(pcard->defstring).Width; adFont->draw(pcard->defstring, recti(m + 4, 416, m + 4 + w, 436), 0xff000000, false, false, 0); adFont->draw(pcard->defstring, recti(m + 5, 417, m + 5 + w, 437), pcard->defence > pcard->base_defence ? 0xffffff00 : pcard->defence < pcard->base_defence ? 0xffff2090 : 0xffffffff , false, false, 0); adFont->draw(pcard->lvstring, recti(473 + i * 80, 356, 475 + i * 80, 366), 0xff000000, false, false, 0); adFont->draw(pcard->lvstring, recti(474 + i * 80, 357, 476 + i * 80, 367), (pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0); } } for(int i = 0; i < 5; ++i) { pcard = dField.mzone[1][i]; if(pcard && (pcard->position & POS_FACEUP)) { int m = 803 - i * 68; adFont->draw(L"/", recti(m - 4, 235, m + 4, 255), 0xff000000, true, false, 0); adFont->draw(L"/", recti(m - 3, 236, m + 5, 256), 0xffffffff, true, false, 0); int w = adFont->getDimension(pcard->atkstring).Width; adFont->draw(pcard->atkstring, recti(m - 5 - w, 235, m - 5, 255), 0xff000000, false, false, 0); adFont->draw(pcard->atkstring, recti(m - 4 - w, 236, m - 4, 256), pcard->attack > pcard->base_attack ? 0xffffff00 : pcard->attack < pcard->base_attack ? 0xffff2090 : 0xffffffff , false, false, 0); w = adFont->getDimension(pcard->defstring).Width; adFont->draw(pcard->defstring, recti(m + 4, 235, m + 4 + w, 255), 0xff000000, false, false, 0); adFont->draw(pcard->defstring, recti(m + 5, 236, m + 5 + w, 256), pcard->defence > pcard->base_defence ? 0xffffff00 : pcard->defence < pcard->base_defence ? 0xffff2090 : 0xffffffff , false, false, 0); adFont->draw(pcard->lvstring, recti(779 - i * 71, 272, 800 - i * 71, 292), 0xff000000, false, false, 0); adFont->draw(pcard->lvstring, recti(780 - i * 71, 273, 800 - i * 71, 293), (pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0); } } pcard = dField.szone[0][6]; if(pcard) { adFont->draw(pcard->lscstring, recti(426, 394, 438, 414), 0xff000000, true, false, 0); adFont->draw(pcard->lscstring, recti(427, 395, 439, 415), 0xffffffff, true, false, 0); } pcard = dField.szone[0][7]; if(pcard) { adFont->draw(pcard->rscstring, recti(880, 394, 912, 414), 0xff000000, true, false, 0); adFont->draw(pcard->rscstring, recti(881, 395, 913, 415), 0xffffffff, true, false, 0); } pcard = dField.szone[1][6]; if(pcard) { adFont->draw(pcard->lscstring, recti(839, 245, 871, 265), 0xff000000, true, false, 0); adFont->draw(pcard->lscstring, recti(840, 246, 872, 266), 0xffffffff, true, false, 0); } pcard = dField.szone[1][7]; if(pcard) { adFont->draw(pcard->rscstring, recti(463, 245, 495, 265), 0xff000000, true, false, 0); adFont->draw(pcard->rscstring, recti(464, 246, 496, 266), 0xffffffff, true, false, 0); } if(dField.extra[0].size()) { numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(330, 562, 381, 552), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(330, 563, 383, 553), 0xffffff00, true, false, 0); } if(dField.deck[0].size()) { numFont->draw(dataManager.GetNumString(dField.deck[0].size()), recti(907, 562, 1021, 552), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.deck[0].size()), recti(908, 563, 1023, 553), 0xffffff00, true, false, 0); } if(dField.grave[0].size()) { numFont->draw(dataManager.GetNumString(dField.grave[0].size()), recti(837, 375, 984, 456), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.grave[0].size()), recti(837, 376, 986, 457), 0xffffff00, true, false, 0); } if(dField.remove[0].size()) { numFont->draw(dataManager.GetNumString(dField.remove[0].size()), recti(1015, 375, 957, 380), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.remove[0].size()), recti(1015, 376, 959, 381), 0xffffff00, true, false, 0); } if(dField.extra[1].size()) { numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(818, 207, 908, 232), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(818, 208, 910, 233), 0xffffff00, true, false, 0); } if(dField.deck[1].size()) { numFont->draw(dataManager.GetNumString(dField.deck[1].size()), recti(465, 207, 481, 232), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.deck[1].size()), recti(465, 208, 483, 233), 0xffffff00, true, false, 0); } if(dField.grave[1].size()) { numFont->draw(dataManager.GetNumString(dField.grave[1].size()), recti(420, 310, 462, 281), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.grave[1].size()), recti(420, 311, 464, 282), 0xffffff00, true, false, 0); } if(dField.remove[1].size()) { numFont->draw(dataManager.GetNumString(dField.remove[1].size()), recti(300, 310, 443, 340), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.remove[1].size()), recti(300, 311, 445, 341), 0xffffff00, true, false, 0); } }
void HitNote::Draw(Window &_win) { _win.driver->draw2DRectangle(SColor(255, 120, 0, 50), rect<s32>(absXpos, absYpos, absXpos + width, absYpos + height)); _win.driver->draw2DRectangleOutline(recti(absXpos, absYpos, absXpos + width - 1, absYpos + height), SColor(255, 255, 0, 0)); }