Added a back key functionality and corrected arrows appearing when solo in the overworld Status menu

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 2 years ago
parent 116dcaee47
commit cec17fb0de
  1. BIN
      C++ProjectTemplate
  2. 3
      SeasonI.h
  3. 55
      main.cpp

Binary file not shown.

@ -63,14 +63,17 @@ class SeasonI:public PixelGameEngine{
bool DownPressed();
bool LeftPressed();
bool RightPressed();
bool BackPressed();
bool UpHeld();
bool DownHeld();
bool LeftHeld();
bool RightHeld();
bool BackHeld();
bool UpReleased();
bool DownReleased();
bool LeftReleased();
bool RightReleased();
bool BackReleased();
bool PlayerCanMove();
bool NPCCanMove();
void UpdatePlayerTrail(vd2d newMovement,Direction newFacingDir);

@ -1707,7 +1707,7 @@ void SeasonI::keyUpdates() {
KEY_LASTPRESSED=NONE;
}
}
if (LeftPressed()) {
if (LeftPressed()||BackPressed()) {
BATTLE_STATE=BattleState::SELECT_ACTION;
}
if (ACTIONKEYPRESSED||RightPressed()) {
@ -1723,7 +1723,7 @@ void SeasonI::keyUpdates() {
KEY_LASTPRESSED=NONE;
}
}
if (DownPressed()||UpPressed()||LeftPressed()&&POWER_GRADE_CURSOR[-CURRENT_TURN-1]==0) {
if (DownPressed()||UpPressed()||LeftPressed()&&POWER_GRADE_CURSOR[-CURRENT_TURN-1]==0||BackPressed()) {
if (UpPressed()) {
if (BATTLE_MOVELIST_DISPLAY.size()>1) {
if (POWER_SELECTION_CURSOR[-CURRENT_TURN-1]==0) {
@ -1833,7 +1833,7 @@ void SeasonI::keyUpdates() {
ent->obj->highlighted=true;
}
}
if (UpPressed()) {
if (UpPressed()||BackPressed()) {
if (BATTLE_SELECTION_CURSOR==0) { //Power was selected, so go back to the powers menu.
BATTLE_STATE=BattleState::GRADE_SELECT;
} else
@ -1952,8 +1952,8 @@ void SeasonI::keyUpdates() {
}
}
escapeDown:
if (ACTIONKEYPRESSED) {
if (SELECTED_MOVE_SQUARE.x==0&&SELECTED_MOVE_SQUARE.y==0) {
if (ACTIONKEYPRESSED||BackPressed()) {
if (SELECTED_MOVE_SQUARE.x==0&&SELECTED_MOVE_SQUARE.y==0||BackPressed()) {
BATTLE_STATE=BattleState::SELECT_ACTION;
} else {
BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]=(BATTLE_ENCOUNTER->playerPos[-CURRENT_TURN-1]/32+SELECTED_MOVE_SQUARE)*32;
@ -1963,7 +1963,7 @@ void SeasonI::keyUpdates() {
}
}break;
case BattleState::ITEM_SELECT:{
if (LeftPressed()&&!(ITEM_SELECTION_CURSOR&1)) {
if (LeftPressed()&&!(ITEM_SELECTION_CURSOR&1)||BackPressed()) {
BATTLE_STATE=BattleState::SELECT_ACTION;
} else {
HandleInventoryNavigation();
@ -2041,7 +2041,7 @@ void SeasonI::keyUpdates() {
}
}break;
case GameState::OVERWORLD_MENU:{
if (LeftPressed()) {
if (LeftPressed()||BackPressed()) {
GAME_STATE=GameState::GAME_WORLD;
}
if (DownPressed()) {
@ -2140,7 +2140,7 @@ void SeasonI::keyUpdates() {
KEY_LASTPRESSED=NONE;
}
}
if (UpPressed()) {
if (UpPressed()||BackPressed()) {
GAME_STATE=GameState::OVERWORLD_MENU;
OVERWORLD_POWER_SELECTION_MEMBER=-1;
}
@ -2179,7 +2179,7 @@ void SeasonI::keyUpdates() {
KEY_LASTPRESSED=NONE;
}
}
if (LeftPressed()) {
if (LeftPressed()||BackPressed()) {
if (PARTY_MEMBER_COUNT==1) {
OVERWORLD_POWER_SELECTION_MEMBER=-1;
GAME_STATE=GameState::OVERWORLD_MENU;
@ -2198,7 +2198,7 @@ void SeasonI::keyUpdates() {
KEY_LASTPRESSED=NONE;
}
}
if (DownPressed()||UpPressed()||LeftPressed()&&OVERWORLD_POWER_GRADE_CURSOR==0) {
if (DownPressed()||UpPressed()||LeftPressed()&&OVERWORLD_POWER_GRADE_CURSOR==0||BackPressed()) {
if (UpPressed()) {
if (BATTLE_MOVELIST_DISPLAY.size()>1) {
if (OVERWORLD_POWER_SELECTION_CURSOR[OVERWORLD_POWER_SELECTION_MEMBER]==0) {
@ -2265,7 +2265,7 @@ void SeasonI::keyUpdates() {
}
PARTY_MEMBER_OBJ[OVERWORLD_TARGET_SELECTION]->highlighted=true;
}
if (UpPressed()){
if (UpPressed()||BackPressed()){
if (OVERWORLD_ITEM_BEING_USED) {
GAME_STATE=GameState::OVERWORLD_ITEMS_MENU;
} else {
@ -2359,7 +2359,7 @@ void SeasonI::keyUpdates() {
}
}break;
case GameState::OVERWORLD_ITEMS_MENU:{
if (LeftPressed()&&!(ITEM_SELECTION_CURSOR&1)) {
if (LeftPressed()&&!(ITEM_SELECTION_CURSOR&1)||BackPressed()) {
GAME_STATE=GameState::OVERWORLD_MENU;
} else {
HandleInventoryNavigation();
@ -2400,7 +2400,7 @@ void SeasonI::keyUpdates() {
KEY_LASTPRESSED=NONE;
}
}
if (UpPressed()) {
if (UpPressed()||BackPressed()) {
OVERWORLD_POWER_SELECTION_MEMBER=-1;
GAME_STATE=GameState::OVERWORLD_MENU;
}
@ -2585,7 +2585,7 @@ void SeasonI::keyUpdates() {
KEY_LASTPRESSED=NONE;
}
}
if (UpPressed()) {
if (UpPressed()||BackPressed()) {
GAME_STATE=GameState::OVERWORLD_MENU;
}
if (ACTIONKEYPRESSED) {
@ -2603,7 +2603,7 @@ void SeasonI::keyUpdates() {
if (DownPressed()) {
EQUIP_MENU_SLOT=(EquipSlot::Equip)((EQUIP_MENU_SLOT+1)%3);
}
if (LeftPressed()) {
if (LeftPressed()||BackPressed()) {
if (PARTY_MEMBER_COUNT==1) {
GAME_STATE=GameState::OVERWORLD_MENU;
} else {
@ -2645,7 +2645,7 @@ void SeasonI::keyUpdates() {
EQUIP_ITEM_MENU_OFFSET=0;
}
}
if (LeftPressed()) {
if (LeftPressed()||BackPressed()) {
GAME_STATE=GameState::OVERWORLD_EQUIP_MENU;
}
if (ACTIONKEYPRESSED) {
@ -2666,8 +2666,8 @@ void SeasonI::keyUpdates() {
}break;
case GameState::SHOPKEEPER_MENU:{
CursorControl(SHOP_MENU_CURSOR,SHOP_ITEMS.size()+1);
if (ACTIONKEYPRESSED) {
if (SHOP_MENU_CURSOR==SHOP_ITEMS.size()) {
if (ACTIONKEYPRESSED||BackPressed()) {
if (SHOP_MENU_CURSOR==SHOP_ITEMS.size()||BackPressed()) {
if (SHOPKEEPER_INTERACTING_WITH!=nullptr) {
GAME_STATE=GameState::GAME_WORLD;
SHOPKEEPER_INTERACTING_WITH->ShoppingCompleted();
@ -2684,7 +2684,7 @@ void SeasonI::keyUpdates() {
}
}break;
case GameState::SHOPKEEPER_SELL_MENU:{
if (LeftPressed()&&!(ITEM_SELECTION_CURSOR&1)) {
if (LeftPressed()&&!(ITEM_SELECTION_CURSOR&1)||BackPressed()) {
GAME_STATE=GameState::GAME_WORLD;
SHOPKEEPER_INTERACTING_WITH->ShoppingCompleted();
} else {
@ -2914,8 +2914,10 @@ void SeasonI::drawGame(){
DrawDialogBox({4,4},{(int)(WIDTH-8),(int)(HEIGHT/2)},Pixel(70, 33, 105,220),Pixel(62, 54, 69,220),Pixel(185, 148, 255,220));
int nameWidth=GetTextSizeProp(member->obj->name).x/2;
DrawStringPropDecal({(float)(WIDTH-12-nameWidth),4},member->obj->name,WHITE,{0.5,1});
DrawRotatedDecal({(float)(WIDTH-nameWidth-16),7},SPRITES["cursor.png"],M_PI,{(float)SPRITES["cursor.png"]->sprite->width/2,(float)SPRITES["cursor.png"]->sprite->height/2},{(sinf(frameCount/10.F*M_PI)>0)?0.5F:0.25F,(sinf(frameCount/10.F*M_PI)>0)?0.5F:0.25F});
DrawRotatedDecal({(float)(WIDTH-8),7},SPRITES["cursor.png"],0,{(float)SPRITES["cursor.png"]->sprite->width/2,(float)SPRITES["cursor.png"]->sprite->height/2},{(sinf(frameCount/10.F*M_PI)>0)?0.5F:0.25F,(sinf(frameCount/10.F*M_PI)>0)?0.5F:0.25F});
if (PARTY_MEMBER_COUNT>1) {
DrawRotatedDecal({(float)(WIDTH-nameWidth-16),7},SPRITES["cursor.png"],M_PI,{(float)SPRITES["cursor.png"]->sprite->width/2,(float)SPRITES["cursor.png"]->sprite->height/2},{(sinf(frameCount/10.F*M_PI)>0)?0.5F:0.25F,(sinf(frameCount/10.F*M_PI)>0)?0.5F:0.25F});
DrawRotatedDecal({(float)(WIDTH-8),7},SPRITES["cursor.png"],0,{(float)SPRITES["cursor.png"]->sprite->width/2,(float)SPRITES["cursor.png"]->sprite->height/2},{(sinf(frameCount/10.F*M_PI)>0)?0.5F:0.25F,(sinf(frameCount/10.F*M_PI)>0)?0.5F:0.25F});
}
vi2d drawPos={8,8};
DrawStringPropDecal(drawPos,member->obj->name);
drawPos.y+=12;
@ -4082,6 +4084,9 @@ bool SeasonI::LeftPressed(){
bool SeasonI::RightPressed(){
return GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed||MOUSE_PRESSED_DOWN&&GetMouseX()<=128&&GetMouseX()>=96&&GetMouseY()>=HEIGHT-128||KeyRepeat(RIGHT);
}
bool SeasonI::BackPressed(){
return GetKey(BACK).bPressed||GetKey(ESCAPE).bPressed||GetKey(X).bPressed||GetKey(CTRL).bPressed||GetKey(DEL).bPressed||GetKey(END).bPressed||GetKey(NP_DECIMAL).bPressed||GetKey(NP_SUB).bPressed||GetKey(MINUS).bPressed||GetKey(PAUSE).bPressed||GetKey(TAB).bPressed;
}
bool SeasonI::UpHeld(){
return GetKey(W).bHeld||GetKey(UP).bHeld||GetKey(NP8).bHeld||MOUSE_DOWN&&GetMouseY()<=HEIGHT-128+32&&GetMouseY()>=HEIGHT-128&&GetMouseX()<=HEIGHT-128;
}
@ -4094,6 +4099,9 @@ bool SeasonI::LeftHeld(){
bool SeasonI::RightHeld(){
return GetKey(D).bHeld||GetKey(RIGHT).bHeld||GetKey(NP6).bHeld||MOUSE_DOWN&&GetMouseX()<=128&&GetMouseX()>=96&&GetMouseY()>=HEIGHT-128;
}
bool SeasonI::BackHeld(){
return GetKey(BACK).bHeld||GetKey(ESCAPE).bHeld||GetKey(X).bHeld||GetKey(CTRL).bHeld||GetKey(DEL).bHeld||GetKey(END).bHeld||GetKey(NP_DECIMAL).bHeld||GetKey(NP_SUB).bHeld||GetKey(MINUS).bHeld||GetKey(PAUSE).bHeld||GetKey(TAB).bHeld;
}
bool SeasonI::UpReleased(){
return GetKey(W).bReleased||GetKey(UP).bReleased||GetKey(NP8).bReleased||MOUSE_RELEASED&&GetMouseY()<=HEIGHT-128+32&&GetMouseY()>=HEIGHT-128&&GetMouseX()<=HEIGHT-128;
}
@ -4106,6 +4114,9 @@ bool SeasonI::LeftReleased(){
bool SeasonI::RightReleased(){
return GetKey(D).bReleased||GetKey(RIGHT).bReleased||GetKey(NP6).bReleased||MOUSE_RELEASED&&GetMouseX()<=128&&GetMouseX()>=96&&GetMouseY()>=HEIGHT-128;
}
bool SeasonI::BackReleased(){
return GetKey(BACK).bReleased||GetKey(ESCAPE).bReleased||GetKey(X).bReleased||GetKey(CTRL).bReleased||GetKey(DEL).bReleased||GetKey(END).bReleased||GetKey(NP_DECIMAL).bReleased||GetKey(NP_SUB).bReleased||GetKey(MINUS).bReleased||GetKey(PAUSE).bReleased||GetKey(TAB).bReleased;
}
bool SeasonI::PlayerCanMove(){
return GAME_STATE==GameState::GAME_WORLD&&BATTLE_ENCOUNTER==nullptr&&!IsTextEntryEnabled()&&!messageBoxVisible&&PARTY_MEMBER_OBJ[0]!=nullptr&&CurrentCutscene==nullptr;
@ -5291,7 +5302,7 @@ void SeasonI::GetAnyKeyPress(olc::Key keypress){
}
} else {
ANYKEYPRESSED=true;
if (!UpPressed()&&!DownPressed()&&!LeftPressed()&&!RightPressed()) {
if (!UpPressed()&&!DownPressed()&&!LeftPressed()&&!RightPressed()&&!BackPressed()) {
ACTIONKEYPRESSED=true;
}
}

Loading…
Cancel
Save