diff --git a/C++ProjectTemplate b/C++ProjectTemplate index a29c71b..86c2d3f 100755 Binary files a/C++ProjectTemplate and b/C++ProjectTemplate differ diff --git a/main.cpp b/main.cpp index dead274..f422ff7 100644 --- a/main.cpp +++ b/main.cpp @@ -773,6 +773,25 @@ goes on a very long time, I hope you can understand this is only for testing pur for (int i=0;iencounters.size();i++) { if (CURRENT_MAP->encounters[i]->IsEncounterAlive()&&CURRENT_MAP->encounters[i]->IsInRange(PARTY_MEMBER_OBJ[0]->GetPos())) { BATTLE_STATE=BattleState::MOVE_CAMERA; + for (int i=0;iGetHP()%10; + player_rollpp_display[i][j]=member->PP%10; + }break; + case 1:{ + player_rollhp_display[i][j]=member->GetHP()/10%10; + player_rollpp_display[i][j]=member->PP/10%10; + }break; + case 2:{ + player_rollhp_display[i][j]=member->GetHP()/100%10; + player_rollpp_display[i][j]=member->PP/100%10; + }break; + } + } + } BATTLE_ENCOUNTER=CURRENT_MAP->encounters[i]; break; } @@ -1198,37 +1217,97 @@ goes on a very long time, I hope you can understand this is only for testing pur }break; case BattleState::MOVE_SELECT:{ if (LeftPressed()) { - for (int i=1;i<=3;i++) { + for (int i=1;i<=8;i++) { if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x-i,SELECTED_MOVE_SQUARE.y})) { SELECTED_MOVE_SQUARE.x-=i; - break; + goto escapeLeft; + } + } + for (int j=1;j<=8;j++) { + for (int i=1;i<=8;i++) { + if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x-i,SELECTED_MOVE_SQUARE.y+j})) { + SELECTED_MOVE_SQUARE.x-=i; + SELECTED_MOVE_SQUARE.y+=j; + goto escapeLeft; + } + if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x-i,SELECTED_MOVE_SQUARE.y-j})) { + SELECTED_MOVE_SQUARE.x-=i; + SELECTED_MOVE_SQUARE.y-=j; + goto escapeLeft; + } } } } + escapeLeft: if (RightPressed()) { for (int i=1;i<=8;i++) { if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x+i,SELECTED_MOVE_SQUARE.y})) { SELECTED_MOVE_SQUARE.x+=i; - break; + goto escapeRight; + } + } + for (int j=1;j<=8;j++) { + for (int i=1;i<=8;i++) { + if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x+i,SELECTED_MOVE_SQUARE.y+j})) { + SELECTED_MOVE_SQUARE.x+=i; + SELECTED_MOVE_SQUARE.y+=j; + goto escapeRight; + } + if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x+i,SELECTED_MOVE_SQUARE.y-j})) { + SELECTED_MOVE_SQUARE.x+=i; + SELECTED_MOVE_SQUARE.y-=j; + goto escapeRight; + } } } } + escapeRight: if (UpPressed()) { for (int i=1;i<=8;i++) { if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x,SELECTED_MOVE_SQUARE.y-i})) { SELECTED_MOVE_SQUARE.y-=i; - break; + goto escapeUp; + } + } + for (int j=1;j<=8;j++) { + for (int i=1;i<=8;i++) { + if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x-j,SELECTED_MOVE_SQUARE.y-i})) { + SELECTED_MOVE_SQUARE.x-=j; + SELECTED_MOVE_SQUARE.y-=i; + goto escapeUp; + } + if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x+j,SELECTED_MOVE_SQUARE.y-i})) { + SELECTED_MOVE_SQUARE.x+=j; + SELECTED_MOVE_SQUARE.y-=i; + goto escapeUp; + } } } } + escapeUp: if (DownPressed()) { for (int i=1;i<=8;i++) { if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x,SELECTED_MOVE_SQUARE.y+i})) { SELECTED_MOVE_SQUARE.y+=i; - break; + goto escapeDown; + } + } + for (int j=1;j<=8;j++) { + for (int i=1;i<=8;i++) { + if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x-j,SELECTED_MOVE_SQUARE.y+i})) { + SELECTED_MOVE_SQUARE.x-=j; + SELECTED_MOVE_SQUARE.y+=i; + goto escapeDown; + } + if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x+j,SELECTED_MOVE_SQUARE.y+i})) { + SELECTED_MOVE_SQUARE.x+=j; + SELECTED_MOVE_SQUARE.y+=i; + goto escapeDown; + } } } } + escapeDown: if (ACTIONKEYPRESSED) { BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]=(BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]/32+SELECTED_MOVE_SQUARE)*32; BATTLE_STATE=BattleState::MOVE_CAMERA; @@ -2882,26 +2961,7 @@ goes on a very long time, I hope you can understand this is only for testing pur if (allDone) { CAMERA_WAIT_TIMER++; if (CAMERA_WAIT_TIMER>=CAMERA_WAIT_TIME) { - for (int i=0;iGetHP()%10; - player_rollpp_display[i][j]=member->PP%10; - }break; - case 1:{ - player_rollhp_display[i][j]=member->GetHP()/10%10; - player_rollpp_display[i][j]=member->PP/10%10; - }break; - case 2:{ - player_rollhp_display[i][j]=member->GetHP()/100%10; - player_rollpp_display[i][j]=member->PP/100%10; - }break; - } - } - BATTLE_STATE=BattleState::WAIT; - } + BATTLE_STATE=BattleState::WAIT; } } }break;