generated from sigonasr2/CPlusPlusProjectTemplate
Encounter selection menu prepared, need to add encounter reference list next
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
67ccb1d0c8
commit
913d1683f5
Binary file not shown.
56
main.cpp
56
main.cpp
@ -41,6 +41,7 @@ namespace layer{
|
|||||||
GROUND,
|
GROUND,
|
||||||
BACKGROUND,
|
BACKGROUND,
|
||||||
OBJECT, //The object layer doesn't actually exist, it's used to tell the editor we are adding an object instead.
|
OBJECT, //The object layer doesn't actually exist, it's used to tell the editor we are adding an object instead.
|
||||||
|
ENCOUNTER, //The encounter layer doesn't actually exist, it's used to tell the editor we are adding encounters instead.
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,6 +364,8 @@ public:
|
|||||||
std::map<BattleMoveName,Battle::Move*>MOVELIST;
|
std::map<BattleMoveName,Battle::Move*>MOVELIST;
|
||||||
std::array<vd2d,PARTY_TRAIL_LENGTH> partyTrail={vd2d{0,0}};
|
std::array<vd2d,PARTY_TRAIL_LENGTH> partyTrail={vd2d{0,0}};
|
||||||
int PARTY_MEMBER_COUNT = 1;
|
int PARTY_MEMBER_COUNT = 1;
|
||||||
|
int ENCOUNTER_SELECTED = 0;
|
||||||
|
int ENCOUNTER_OFFSET = 0;
|
||||||
|
|
||||||
|
|
||||||
bool MOUSE_PRESSED_DOWN=false,MOUSE_DOWN=false,MOUSE_RELEASED=false; //TODO Implement Mouse things.
|
bool MOUSE_PRESSED_DOWN=false,MOUSE_DOWN=false,MOUSE_RELEASED=false; //TODO Implement Mouse things.
|
||||||
@ -630,6 +633,11 @@ goes on a very long time, I hope you can understand this is only for testing pur
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
case GameState::ENCOUNTER_SELECT:{
|
||||||
|
if (!GetKey(SHIFT).bHeld) {
|
||||||
|
GAME_STATE=GameState::EDITOR;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
case GameState::GAME_WORLD:{
|
case GameState::GAME_WORLD:{
|
||||||
if (PlayerCanMove()) {
|
if (PlayerCanMove()) {
|
||||||
if (UpHeld()) {
|
if (UpHeld()) {
|
||||||
@ -658,6 +666,9 @@ goes on a very long time, I hope you can understand this is only for testing pur
|
|||||||
if (TabHeld()) {
|
if (TabHeld()) {
|
||||||
GAME_STATE=GameState::TILE_SELECT;
|
GAME_STATE=GameState::TILE_SELECT;
|
||||||
}
|
}
|
||||||
|
if (GetKey(SHIFT).bHeld) {
|
||||||
|
GAME_STATE=GameState::ENCOUNTER_SELECT;
|
||||||
|
}
|
||||||
if (PlayerCanMove()) {
|
if (PlayerCanMove()) {
|
||||||
if (GetKey(I).bHeld) {
|
if (GetKey(I).bHeld) {
|
||||||
if (PARTY_MEMBER_OBJ[0]->SmoothMove({0,-1})) {
|
if (PARTY_MEMBER_OBJ[0]->SmoothMove({0,-1})) {
|
||||||
@ -866,6 +877,9 @@ goes on a very long time, I hope you can understand this is only for testing pur
|
|||||||
if (GetKey(ESCAPE).bPressed) {
|
if (GetKey(ESCAPE).bPressed) {
|
||||||
GAME_STATE=GameState::OBJ_SELECT;
|
GAME_STATE=GameState::OBJ_SELECT;
|
||||||
}
|
}
|
||||||
|
if (EDITING_LAYER==layer::ENCOUNTER&&GetMouse(0).bPressed) {
|
||||||
|
//LoadEncounter(CURRENT_MAP,HIGHLIGHTED_TILE*32,CURRENT_MAP->encounters) //TODO Make up the encounter reference list and then come back.
|
||||||
|
} else
|
||||||
if (EDITING_LAYER==layer::OBJECT&&GetMouse(0).bPressed) {
|
if (EDITING_LAYER==layer::OBJECT&&GetMouse(0).bPressed) {
|
||||||
AddObjectToWorld(CreateObject(SELECTED_OBJ_ID,HIGHLIGHTED_TILE*32));
|
AddObjectToWorld(CreateObject(SELECTED_OBJ_ID,HIGHLIGHTED_TILE*32));
|
||||||
} else
|
} else
|
||||||
@ -906,6 +920,9 @@ goes on a very long time, I hope you can understand this is only for testing pur
|
|||||||
DrawGameWorld();
|
DrawGameWorld();
|
||||||
SetDrawTarget(nullptr);
|
SetDrawTarget(nullptr);
|
||||||
DrawRectDecal((HIGHLIGHTED_TILE)*32-cameraPos,{32,32},YELLOW);
|
DrawRectDecal((HIGHLIGHTED_TILE)*32-cameraPos,{32,32},YELLOW);
|
||||||
|
if (EDITING_LAYER==layer::ENCOUNTER) {
|
||||||
|
DrawStringPropDecal({2,2},"Editing Encounters");
|
||||||
|
} else
|
||||||
if (EDITING_LAYER==layer::OBJECT) {
|
if (EDITING_LAYER==layer::OBJECT) {
|
||||||
DrawStringPropDecal({2,2},"Editing Objects");
|
DrawStringPropDecal({2,2},"Editing Objects");
|
||||||
} else {
|
} else {
|
||||||
@ -951,6 +968,45 @@ goes on a very long time, I hope you can understand this is only for testing pur
|
|||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
case GameState::ENCOUNTER_SELECT:{
|
||||||
|
vd2d drawpos={0,0};
|
||||||
|
int counter=0;
|
||||||
|
for (int i=0;i<CURRENT_MAP->encounters.size();i++){
|
||||||
|
if (counter<ENCOUNTER_OFFSET) {
|
||||||
|
counter++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (drawpos.y>HEIGHT) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Encounter*enc = CURRENT_MAP->encounters[i];
|
||||||
|
if (GetMouse(0).bHeld&&
|
||||||
|
GetMousePos().x>=drawpos.x&&
|
||||||
|
GetMousePos().x<drawpos.x+16&&
|
||||||
|
GetMousePos().y>=drawpos.y&&
|
||||||
|
GetMousePos().y<drawpos.y+24) {
|
||||||
|
ENCOUNTER_SELECTED=enc->id;
|
||||||
|
EDITING_LAYER=layer::ENCOUNTER;
|
||||||
|
}
|
||||||
|
FillRectDecal(drawpos,{16,24},VERY_DARK_GREY);
|
||||||
|
for (int i=0;i<enc->objs.size();i+=2) {
|
||||||
|
DrawPartialDecal({drawpos.x+((double)8/(enc->objs.size()))*i-4,drawpos.y},{16,16},enc->objs[i]->obj->spr->spr,{(enc->objs[i]->obj->frameIndex%enc->objs[i]->obj->spr->frames)*enc->objs[i]->obj->spr->width,0},{enc->objs[i]->obj->spr->width,enc->objs[i]->obj->spr->spr->sprite->height},enc->objs[i]->obj->color);
|
||||||
|
}
|
||||||
|
for (int i=1;i<enc->objs.size();i+=2) {
|
||||||
|
DrawPartialDecal({drawpos.x+((double)8/(enc->objs.size()))*i-4,drawpos.y+6},{16,16},enc->objs[i]->obj->spr->spr,{(enc->objs[i]->obj->frameIndex%enc->objs[i]->obj->spr->frames)*enc->objs[i]->obj->spr->width,0},{enc->objs[i]->obj->spr->width,enc->objs[i]->obj->spr->spr->sprite->height},enc->objs[i]->obj->color);
|
||||||
|
}
|
||||||
|
if (ENCOUNTER_SELECTED==enc->id) {
|
||||||
|
DrawRectDecal(drawpos,{16,24},YELLOW);
|
||||||
|
}
|
||||||
|
DrawStringDecal({drawpos.x+2,drawpos.y+24-GetTextSize(std::to_string(enc->id)).y},std::to_string(enc->id),WHITE,{12.0/GetTextSize(std::to_string(enc->id)).x,1.0});
|
||||||
|
drawpos.x+=16;
|
||||||
|
if (drawpos.x>=WIDTH) {
|
||||||
|
drawpos.x=0;
|
||||||
|
drawpos.y+=24;
|
||||||
|
}
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
if (messageBoxVisible) {
|
if (messageBoxVisible) {
|
||||||
SetDrawTarget(layer::INTERFACE);
|
SetDrawTarget(layer::INTERFACE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user