|
@@ -1,94 +0,0 @@
|
|
|
-#include "Game.h"
|
|
|
-#include "Initialisierung.h"
|
|
|
-#include "Globals.h"
|
|
|
-
|
|
|
-#include <AsynchronCall.h>
|
|
|
-#include <Bildschirm.h>
|
|
|
-
|
|
|
-Game::Game( Bildschirm* zScreen )
|
|
|
- : Menu( zScreen )
|
|
|
-{
|
|
|
- logout = initKnopf( 10, 10, 200, 20, Knopf::Style::Normal, "Verlassen" );
|
|
|
- logout->setMausEreignis( [this, zScreen]( void* p, void* o, MausEreignis me ) {
|
|
|
- if( me.id == ME_RLinks )
|
|
|
- {
|
|
|
- logout->removeStyle( Knopf::Style::Erlaubt );
|
|
|
- new AsynchronCall( [this, zScreen]() {
|
|
|
- if( network->leaveGame() )
|
|
|
- {
|
|
|
- currentGame->release();
|
|
|
- currentGame = 0;
|
|
|
- zScreen->lock();
|
|
|
- hide();
|
|
|
- menuRegister->get( "directConnect" )->show();
|
|
|
- zScreen->unlock();
|
|
|
- }
|
|
|
- logout->addStyle( Knopf::Style::Erlaubt );
|
|
|
- } );
|
|
|
- }
|
|
|
- return 1;
|
|
|
- } );
|
|
|
- elements.add( logout );
|
|
|
- debug = initTextFeld( 10, 40, 500, 40, TextFeld::Style::Text | TextFeld::Style::Mehrzeilig, "" );
|
|
|
- elements.add( debug );
|
|
|
- invB = new Bild();
|
|
|
- invB->neuBild( zScreen->getBackBufferSize().x - 20, 50, 0 );
|
|
|
- invB->setAlpha3D( 1 );
|
|
|
- inventory = initBildZ( 10, zScreen->getBackBufferSize().y - 60, zScreen->getBackBufferSize().x - 20, 50, BildZ::Style::Sichtbar | BildZ::Style::Alpha, invB );
|
|
|
- elements.add( inventory );
|
|
|
-}
|
|
|
-
|
|
|
-void Game::updatePosition( Vec3<float> position, bool target, Vec3<int> targetPos )
|
|
|
-{
|
|
|
- Text txt = "Position: (";
|
|
|
- txt.setPrecision( 2 );
|
|
|
- txt += position.x;
|
|
|
- txt += ", ";
|
|
|
- txt += position.y;
|
|
|
- txt += ", ";
|
|
|
- txt += position.z;
|
|
|
- txt += ")";
|
|
|
- if( target )
|
|
|
- {
|
|
|
- txt += "\nTarget: (";
|
|
|
- txt += targetPos.x;
|
|
|
- txt += ", ";
|
|
|
- txt += targetPos.y;
|
|
|
- txt += ", ";
|
|
|
- txt += targetPos.z;
|
|
|
- txt += ")";
|
|
|
- }
|
|
|
- debug->setText( txt );
|
|
|
-}
|
|
|
-
|
|
|
-void Game::updateInventory( Framework::Array<ItemSlot*>& itemBar, int pos )
|
|
|
-{
|
|
|
- invB->fillRegion( 0, 0, invB->getBreite(), invB->getHeight(), 0 );
|
|
|
- TextRenderer tr;
|
|
|
- tr.setSchriftZ( dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()) );
|
|
|
- tr.setSchriftSize( 12 );
|
|
|
- int index = 0;
|
|
|
- for( auto slot : itemBar )
|
|
|
- {
|
|
|
- if( pos == index )
|
|
|
- {
|
|
|
- invB->fillRegion( 50 * index, 0, 50, 50, 0x7F202020 );
|
|
|
- }
|
|
|
- if( slot && slot->zStack() && slot->zStack()->zItem() )
|
|
|
- {
|
|
|
- Bild* icon = itemIcons->z( slot->zStack()->zItem()->zItemType()->getId() );
|
|
|
- invB->alphaBild( 50 * index, 0, 50, 50, *icon );
|
|
|
- tr.renderText( 5 + index * 50, 5, slot->zStack()->zItem()->getName(), *invB, 0xFFFFFFFF );
|
|
|
- int size = slot->zStack()->getSize();
|
|
|
- const char* units[] = { "", "K", "M", "G", "T", "P" };
|
|
|
- int index = 0;
|
|
|
- for( ; index < 6 && size > 1024; index++ )
|
|
|
- size = size / 1024;
|
|
|
- Text count = size;
|
|
|
- count += units[ index ];
|
|
|
- tr.renderText( 45 - tr.getTextBreite( count ) + index * 50, 45 - tr.getTextHeight( count ), count, *invB, 0xFFFFFFFF );
|
|
|
- }
|
|
|
- index++;
|
|
|
- }
|
|
|
- inventory->setRender();
|
|
|
-}
|