generated from sigonasr2/CPlusPlusProjectTemplate
Add in alternative checking for move selection when moving fails
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
f76dd92cab
commit
6fbcc64f44
Binary file not shown.
110
main.cpp
110
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;i<CURRENT_MAP->encounters.size();i++) {
|
for (int i=0;i<CURRENT_MAP->encounters.size();i++) {
|
||||||
if (CURRENT_MAP->encounters[i]->IsEncounterAlive()&&CURRENT_MAP->encounters[i]->IsInRange(PARTY_MEMBER_OBJ[0]->GetPos())) {
|
if (CURRENT_MAP->encounters[i]->IsEncounterAlive()&&CURRENT_MAP->encounters[i]->IsInRange(PARTY_MEMBER_OBJ[0]->GetPos())) {
|
||||||
BATTLE_STATE=BattleState::MOVE_CAMERA;
|
BATTLE_STATE=BattleState::MOVE_CAMERA;
|
||||||
|
for (int i=0;i<PARTY_MEMBER_COUNT;i++) {
|
||||||
|
Entity*member=PARTY_MEMBER_STATS[PARTY_MEMBER_ID[i]];
|
||||||
|
for (int j=0;j<3;j++) {
|
||||||
|
switch (j) {
|
||||||
|
case 0:{
|
||||||
|
player_rollhp_display[i][j]=member->GetHP()%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];
|
BATTLE_ENCOUNTER=CURRENT_MAP->encounters[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1198,37 +1217,97 @@ goes on a very long time, I hope you can understand this is only for testing pur
|
|||||||
}break;
|
}break;
|
||||||
case BattleState::MOVE_SELECT:{
|
case BattleState::MOVE_SELECT:{
|
||||||
if (LeftPressed()) {
|
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})) {
|
if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x-i,SELECTED_MOVE_SQUARE.y})) {
|
||||||
SELECTED_MOVE_SQUARE.x-=i;
|
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()) {
|
if (RightPressed()) {
|
||||||
for (int i=1;i<=8;i++) {
|
for (int i=1;i<=8;i++) {
|
||||||
if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x+i,SELECTED_MOVE_SQUARE.y})) {
|
if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x+i,SELECTED_MOVE_SQUARE.y})) {
|
||||||
SELECTED_MOVE_SQUARE.x+=i;
|
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()) {
|
if (UpPressed()) {
|
||||||
for (int i=1;i<=8;i++) {
|
for (int i=1;i<=8;i++) {
|
||||||
if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x,SELECTED_MOVE_SQUARE.y-i})) {
|
if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x,SELECTED_MOVE_SQUARE.y-i})) {
|
||||||
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()) {
|
if (DownPressed()) {
|
||||||
for (int i=1;i<=8;i++) {
|
for (int i=1;i<=8;i++) {
|
||||||
if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x,SELECTED_MOVE_SQUARE.y+i})) {
|
if (MOVEMENT_GRID.count({SELECTED_MOVE_SQUARE.x,SELECTED_MOVE_SQUARE.y+i})) {
|
||||||
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) {
|
if (ACTIONKEYPRESSED) {
|
||||||
BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]=(BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]/32+SELECTED_MOVE_SQUARE)*32;
|
BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]=(BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]/32+SELECTED_MOVE_SQUARE)*32;
|
||||||
BATTLE_STATE=BattleState::MOVE_CAMERA;
|
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) {
|
if (allDone) {
|
||||||
CAMERA_WAIT_TIMER++;
|
CAMERA_WAIT_TIMER++;
|
||||||
if (CAMERA_WAIT_TIMER>=CAMERA_WAIT_TIME) {
|
if (CAMERA_WAIT_TIMER>=CAMERA_WAIT_TIME) {
|
||||||
for (int i=0;i<PARTY_MEMBER_COUNT;i++) {
|
BATTLE_STATE=BattleState::WAIT;
|
||||||
Entity*member=PARTY_MEMBER_STATS[PARTY_MEMBER_ID[i]];
|
|
||||||
for (int j=0;j<3;j++) {
|
|
||||||
switch (j) {
|
|
||||||
case 0:{
|
|
||||||
player_rollhp_display[i][j]=member->GetHP()%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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user