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++) { | ||||
| 							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;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]; | ||||
| 								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;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_STATE=BattleState::WAIT; | ||||
| 							} | ||||
| 							BATTLE_STATE=BattleState::WAIT; | ||||
| 						} | ||||
| 					} | ||||
| 				}break; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user