MainView::MainView(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainView) { ui->setupUi(this); ui->lblName->setVisible(false); ui->editName->setVisible(false); ui->lblCurrTemp->setVisible(false); ui->currTemp->setVisible(false); ui->lblPrefTemp->setVisible(false); ui->editTemp->setVisible(false); ui->btnUpdate->setVisible(false); ui->editTemp->setRange(50,99); t = new nodeCommunication(); t->start(); connect(ui->btnSetup, SIGNAL(clicked()), this, SLOT(generateRooms())); connect(ui->roomList, SIGNAL(itemSelectionChanged()), this, SLOT(roomChange())); connect(ui->btnUpdate, SIGNAL(clicked()), this, SLOT(updateStruct())); }
// Main Map Builder Loop void cBuilder::mapBuilder() { bool mapRedraw = true, saveCastle = false; while(!mQuit) { byte key = tolower( mInput->keyGet() ); if( mInput->restoreGet() ) mQuit = true; switch(key) { case 0x0C: {// '-' Previous Room int newRoom = ((char) mCurrentRoom->mNumber) - 1; if(newRoom < 0) newRoom = 0; roomChange( newRoom ); mapRedraw = true; break; } case 0x0D: {// '=' Next Room int newRoom = ((char) mCurrentRoom->mNumber) + 1; //if( newRoom >= (int) mRooms.size() ) // newRoom = mRooms.size() - 1; roomChange( newRoom ); mapRedraw = true; break; } case 0x1A: // '[' Change object Down mSearchObject = eObjectDoor; selectPlacedObject( false ); mSearchObject = eObjectNone; break; case 0x1B: // ']' Change object Up mSearchObject = eObjectDoor; selectPlacedObject( true ); mSearchObject = eObjectNone; break; case 0x20: // 'd' object direction if( mCurrentObject ) { mCurrentObject->directionChange(); saveCastle = true; } break; case 0x25: // 'k' Increase X of map door if( mCurrentObject && mCurrentObject->objectTypeGet() == eObjectDoor ) { cObjectDoor *door = (cObjectDoor*) mCurrentObject; if(door->mMapX < 0x1C ) door->mMapX += 2; else door->mMapX = 0; saveCastle = true; } break; case 0x26: // 'l' Increase Y of map door if( mCurrentObject && mCurrentObject->objectTypeGet() == eObjectDoor ) { cObjectDoor *door = (cObjectDoor*) mCurrentObject; if(door->mMapY < 0x38 ) door->mMapY += 4; else door->mMapY = 0; saveCastle = true; } break; case 0x27: // ';' Decrease Width if(mCurrentRoom->mMapWidth > 1) mCurrentRoom->mMapWidth --; saveCastle = true; break; case 0x28: // ''' Increase Width if(mCurrentRoom->mMapWidth < 7) mCurrentRoom->mMapWidth ++; saveCastle = true; break; case 0x2E: // 'c' Change Room Color if(mCurrentRoom->mColor < 0x15) mCurrentRoom->mColor++; else mCurrentRoom->mColor = 0; saveCastle = true; break; case 0x34: // '.' Decrease Height if(mCurrentRoom->mMapHeight > 1) mCurrentRoom->mMapHeight --; saveCastle = true; break; case 0x35: // '/' Increase Height if(mCurrentRoom->mMapHeight < 7) mCurrentRoom->mMapHeight ++; saveCastle = true; break; default: /*if(key) { cout << "0x"; cout << hex << (int) key << endl; }*/ break; } // Allow a refresh of screen if(mInput->f3Get()) saveCastle = true; sPlayerInput *input = mInput->inputGet(0); if(input->mLeft) { if(mCurrentRoom->mMapX > 3) mCurrentRoom->mMapX -= 4; saveCastle = true; } if(input->mRight) { if(mCurrentRoom->mMapX < 180) mCurrentRoom->mMapX += 4; saveCastle = true; } if(input->mUp) { if(mCurrentRoom->mMapY > 7) mCurrentRoom->mMapY -= 8; saveCastle = true; } if(input->mDown) { if(mCurrentRoom->mMapY < 200) mCurrentRoom->mMapY += 8; saveCastle = true; } if( saveCastle ) { saveCastle = false; save(false); mapRedraw = true; } if( mapRedraw ) { mapRedraw = false; mapRoomsDraw( mCurrentRoom->mNumber ); } hw_IntSleep(1); hw_Update(); } mQuit = false; }
void cBuilder::mainLoop() { mQuit = false; mIntro = false; mNoInput = true; if( mStartCastle != -2 && mStartCastle > -1 ) { // Load Castle mCastle = mCreepParent->castleGet(); mCastle->castleLoad( this ); } else { if(mStartCastle != -2) { // New Castle mScreen->levelNameSet("Untitled"); mCastle = new cCastle( this, 0 ); save( false ); } } // Set the screen ptrs mScreen->bitmapLoad( &mMemory[ 0xE000 ], &mMemory[ 0xCC00 ], &mMemory[ 0xD800 ], 0 ); // Prep Cursor mScreen->cursorSet( mCursorX, mCursorY ); mScreen->cursorEnabled(true); // Change to first room roomChange(mMemory[ 0x7803 ]); // while(!mQuit) { byte key = tolower( mInput->keyGet() ); // Check keyboard input switch(key) { case 0x02: // '1' Set player one starting door if( mCurrentObject && mCurrentObject->objectTypeGet() == eObjectDoor ) { mCastle->mStart_Room_Player1Set(mCurrentRoom->mNumber); mCastle->mStart_Door_Player1Set(findItemIndex( mCurrentObject )); castlePrepare(); } break; case 0x03: // '2' Set player two starting door if( mCurrentObject && mCurrentObject->objectTypeGet() == eObjectDoor ) { mCastle->mStart_Room_Player2Set(mCurrentRoom->mNumber); mCastle->mStart_Door_Player2Set(findItemIndex( mCurrentObject )); castlePrepare(); } break; case 0x10: // 'q' Change Selected Placement Object 'Up' selectedObjectChange( true ); break; case 0x1E: // 'a' Change Selected Placement Object 'Down' selectedObjectChange( false ); break; case 0x1F: // 's' Object State if(mCurrentObject) { mCurrentObject->stateChange(); castlePrepare(); } break; case 0x1A: // '[' Select a placed object selectPlacedObject( false ); break; case 0x1B: // ']' Select a placed object selectPlacedObject( true ); break; case 0x20: // 'd' object direction if( mCurrentObject ) { mCurrentObject->directionChange(); castlePrepare(); } break; case 0x26: // 'l' Link Objects selectedObjectLink(); break; case 0x0C: {// '-' Previous Room int newRoom = ((char) mCurrentRoom->mNumber) - 1; if(newRoom < 0) newRoom = 0; roomChange( newRoom ); break; } case 0x0D: {// '=' Next Room int newRoom = ((char) mCurrentRoom->mNumber) + 1; //if( newRoom >= (int) mRooms.size() ) // newRoom = mRooms.size() - 1; roomChange( newRoom ); break; } case 0x21: // 'f' edit final room if( mCastle->mFinalRoomGet() == mCurrentRoom ) roomChange(0); else roomChange(-1); break; case 0x73: // 'Delete' Delete selected object selectedObjectDelete(); break; default: /*if(key) { cout << "0x"; cout << hex << (int) key << endl; }*/ break; } // Check 'joystick' input parseInput(); interruptWait( 2 ); // Draw Sprite_Execute(); object_Execute(); // Redraw screen hw_Update(); } mScreen->cursorEnabled(false); if( mTest ) save( true ); }