diff --git a/SeasonsOfLoneliness.cpp b/SeasonsOfLoneliness.cpp index 13329a9..32a1151 100644 --- a/SeasonsOfLoneliness.cpp +++ b/SeasonsOfLoneliness.cpp @@ -737,6 +737,9 @@ public: PLAYER_COORDS[0]=16; PLAYER_COORDS[1]=6; }break; + case cutscene::RAINING_IN_DOME:{ + applyPixelEffect(HURRICANE,GetMapFileCoords(7,11)); + }break; } for (int i=0;i<8;i++) { CUTSCENE_FLAGS[i]=false; @@ -958,15 +961,15 @@ public: PIXEL_EFFECT_TRANSPARENCY=0; if (BATTLE_CURRENT_TURN_ENTITY==-1) { if (PLAYER_SELECTED_TARGET==-2) { - applyPixelEffect(BATTLE_CARD_SELECTION,PLAYER_COORDS[0],PLAYER_COORDS[1]); + applyPixelEffect(BATTLE_CARD_SELECTION,{PLAYER_COORDS[0],PLAYER_COORDS[1]}); } else { - applyPixelEffect(BATTLE_CARD_SELECTION,CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->x,CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->y); + applyPixelEffect(BATTLE_CARD_SELECTION,{CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->x,CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->y}); } } else { if (CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->selectedMove->damage<0) { - applyPixelEffect(CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->selectedMove,CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->x,CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->y); + applyPixelEffect(CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->selectedMove,{CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->x,CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->y}); } else { - applyPixelEffect(CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->selectedMove,PLAYER_COORDS[0],PLAYER_COORDS[1]); + applyPixelEffect(CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->selectedMove,{PLAYER_COORDS[0],PLAYER_COORDS[1]}); } } } @@ -1002,25 +1005,10 @@ public: effectRadius({PLAYER_COORDS[0],PLAYER_COORDS[1]},ref,false); } } - for (int i=0;ipos+=pixels[i]->spd; - if (pixels[i]->pos.xpos.x=PIXEL_POS.x+PIXEL_SIZE.x; - } - if (pixels[i]->pos.x>PIXEL_POS.x+PIXEL_SIZE.x) { - pixels[i]->pos.x=PIXEL_POS.x; - } - if (pixels[i]->pos.ypos.y=PIXEL_POS.y+PIXEL_SIZE.y; - } - if (pixels[i]->pos.y>PIXEL_POS.y+PIXEL_SIZE.y) { - pixels[i]->pos.y=PIXEL_POS.y; - } - pixels[i]->a=pixels[i]->o_a*PIXEL_EFFECT_TRANSPARENCY; - } if (EFFECT_TIMER>ref->effectTime) { BATTLE_STATE=battle::DAMAGE_RESOLUTION; EFFECT_TIMER=0; + clearPixelEffect(); } }break; case battle::DAMAGE_RESOLUTION:{ @@ -1099,7 +1087,7 @@ public: CUTSCENE_OBJS[0]->x-=MOVE_SPD; } if (MoveCameraTowardsPoint(GetMapFileCoords(7,11))) { - //Go to next part of cutscene. + PlayCutscene(cutscene::RAINING_IN_DOME); } }break; } @@ -1162,6 +1150,25 @@ public: } }break; } + + if (PIXEL_EFFECT_TRANSPARENCY>0) { + for (int i=0;ipos+=pixels[i]->spd; + if (pixels[i]->pos.xpos.x=PIXEL_POS.x+PIXEL_SIZE.x; + } + if (pixels[i]->pos.x>PIXEL_POS.x+PIXEL_SIZE.x) { + pixels[i]->pos.x=PIXEL_POS.x; + } + if (pixels[i]->pos.ypos.y=PIXEL_POS.y+PIXEL_SIZE.y; + } + if (pixels[i]->pos.y>PIXEL_POS.y+PIXEL_SIZE.y) { + pixels[i]->pos.y=PIXEL_POS.y; + } + pixels[i]->a=pixels[i]->o_a*PIXEL_EFFECT_TRANSPARENCY; + } + } } void advanceMessageBox() { @@ -1265,15 +1272,6 @@ public: } else { DrawWrappedText({4,4},CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->name+" "+(char)('A'+BATTLE_CURRENT_TURN_ENTITY)+" with "+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->selectedMove->name,WIDTH-8,WHITE,{2,2}); } - SetDrawTarget(nullptr); - for (int i=0;isize.x==1&&pixels[i]->size.y==1) { - Draw(pixels[i]->pos,{pixels[i]->r,pixels[i]->g,pixels[i]->b,pixels[i]->a}); - } else { - FillRectDecal(pixels[i]->pos,pixels[i]->size,{pixels[i]->r,pixels[i]->g,pixels[i]->b,pixels[i]->a}); - } - } - SetDrawTarget(1); FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(ORIGINAL_FOREGROUND_EFFECT_COLOR.r,ORIGINAL_FOREGROUND_EFFECT_COLOR.g,ORIGINAL_FOREGROUND_EFFECT_COLOR.b,ORIGINAL_FOREGROUND_EFFECT_COLOR.a*PIXEL_EFFECT_TRANSPARENCY)); }break; } @@ -1294,6 +1292,17 @@ public: //std::cout<x<<"/"<y<<" "<<(((numb->x-PLAYER_COORDS[0])*32+WIDTH/2)-GetTextSize(display).x/2)<<","<<(((numb->y-PLAYER_COORDS[1])*32+HEIGHT/2)-8-GetTextSize(display).y/2)<<": ("<alpha<<")"<0) { + SetDrawTarget(nullptr); + for (int i=0;isize.x==1&&pixels[i]->size.y==1) { + Draw(pixels[i]->pos,{pixels[i]->r,pixels[i]->g,pixels[i]->b,pixels[i]->a}); + } else { + FillRectDecal(pixels[i]->pos,pixels[i]->size,{pixels[i]->r,pixels[i]->g,pixels[i]->b,pixels[i]->a}); + } + } + SetDrawTarget(1); + } if (messageBoxVisible) { DrawDialogBox({4,HEIGHT-60},{WIDTH/2,16},Pixel(18, 0, 33,180)); DrawDialogBox({0,HEIGHT-48},{WIDTH,48},Pixel(18, 0, 33,180)); @@ -1753,12 +1762,12 @@ public: CUTSCENE_DISPLAYED_CARD=POWER; } - void applyPixelEffect(WEATHER_POWER*power,int x,int y) { + void applyPixelEffect(WEATHER_POWER*power,vf2d pos) { SetDrawTarget(nullptr); Clear(BLANK); SetDrawTarget(1); applyPixelEffect( - {(x-PLAYER_COORDS[0])*32+WIDTH/2-16-power->effect->effectSize.x/2,(y-PLAYER_COORDS[1])*32+HEIGHT/2-16-power->effect->effectSize.y/2}, + {(pos.x-PLAYER_COORDS[0])*32+WIDTH/2-16-power->effect->effectSize.x/2,(pos.y-PLAYER_COORDS[1])*32+HEIGHT/2-16-power->effect->effectSize.y/2}, power->effect->effectSize, power->effect->pos_low, power->effect->pos_high, @@ -1793,6 +1802,7 @@ public: void clearPixelEffect() { PIXEL_LIMIT=0; + PIXEL_EFFECT_TRANSPARENCY=0; } //Returns a number between 0.0 and X. @@ -1804,7 +1814,7 @@ public: return random(val2-val1)+val1; } - vi2d GetMapFileCoords(int ln,int col) { + vf2d GetMapFileCoords(int ln,int col) { return {col-1,ln-3}; } diff --git a/Seasons_of_Loneliness b/Seasons_of_Loneliness index 050a20e..62f60e5 100755 Binary files a/Seasons_of_Loneliness and b/Seasons_of_Loneliness differ