diff --git a/C++ProjectTemplate b/C++ProjectTemplate index 5705ec5..c60e62b 100755 Binary files a/C++ProjectTemplate and b/C++ProjectTemplate differ diff --git a/main.cpp b/main.cpp index fbd74a0..f3f55d1 100644 --- a/main.cpp +++ b/main.cpp @@ -760,7 +760,7 @@ This is a test message that lets us trigger straight from a cutscene! Cool!)"), //DisplayMessageBox("Not implemented yet."); BATTLE_STATE=BattleState::MOVE_SELECT; SELECTED_MOVE_SQUARE={0,0}; - PopulateMovementGrid(PARTY_MEMBER_STATS[PARTY_MEMBER_ID[-CURRENT_TURN-1]]->obj->GetPosWithOrigin(),PARTY_MEMBER_STATS[PARTY_MEMBER_ID[-CURRENT_TURN-1]]->speed/2); + PopulateMovementGrid(PARTY_MEMBER_STATS[PARTY_MEMBER_ID[-CURRENT_TURN-1]]->obj->GetPosWithOrigin(),CalculateSpeedGridMovementAmount(PARTY_MEMBER_STATS[PARTY_MEMBER_ID[-CURRENT_TURN-1]]->speed)); }break; case 5:{ //Run selected. DisplayMessageBox("Not implemented yet."); @@ -1045,9 +1045,13 @@ This is a test message that lets us trigger straight from a cutscene! Cool!)"), } 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; - PARTY_MEMBER_STATS[PARTY_MEMBER_ID[-CURRENT_TURN-1]]->atb=400; + if (SELECTED_MOVE_SQUARE.x==0&&SELECTED_MOVE_SQUARE.y==0) { + BATTLE_STATE=BattleState::SELECT_ACTION; + } else { + BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]=(BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]/32+SELECTED_MOVE_SQUARE)*32; + BATTLE_STATE=BattleState::MOVE_CAMERA; + PARTY_MEMBER_STATS[PARTY_MEMBER_ID[-CURRENT_TURN-1]]->atb=400; + } } }break; case BattleState::ITEM_SELECT:{ @@ -3822,7 +3826,7 @@ This is a test message that lets us trigger straight from a cutscene! Cool!)"), void PopulateMovementGrid(vd2d pos,int range) { vi2d gridCenter = (vi2d)pos/32*32; MOVEMENT_GRID.clear(); - CheckGrid(0,0,gridCenter-cameraPos,range); + CheckGrid(0,0,gridCenter-cameraPos,std::min(8,range)); } vi2d grid(int x, int y) { @@ -4457,6 +4461,16 @@ This is a test message that lets us trigger straight from a cutscene! Cool!)"), } } } + + int CalculateSpeedGridMovementAmount(int spd) { + const std::array spdRequirements={0,6,10,18,28,40,60,100}; + for (int i=7;i>=0;i--) { + if (spd>spdRequirements[i]) { + return i+1; + } + } + return 1; + } }; int main()