generated from sigonasr2/CPlusPlusProjectTemplate
First part of cutscene completed with activating particle effect.
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
e4432895b4
commit
346ac249db
@ -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;i<PIXEL_LIMIT;i++) {
|
||||
pixels[i]->pos+=pixels[i]->spd;
|
||||
if (pixels[i]->pos.x<PIXEL_POS.x) {
|
||||
pixels[i]->pos.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.y<PIXEL_POS.y) {
|
||||
pixels[i]->pos.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;i<PIXEL_LIMIT;i++) {
|
||||
pixels[i]->pos+=pixels[i]->spd;
|
||||
if (pixels[i]->pos.x<PIXEL_POS.x) {
|
||||
pixels[i]->pos.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.y<PIXEL_POS.y) {
|
||||
pixels[i]->pos.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;i<PIXEL_LIMIT;i++) {
|
||||
if (pixels[i]->size.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<<numb->x<<"/"<<numb->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)<<": ("<<numb->alpha<<")"<<display<<"\n";
|
||||
}
|
||||
}
|
||||
if (PIXEL_EFFECT_TRANSPARENCY>0) {
|
||||
SetDrawTarget(nullptr);
|
||||
for (int i=0;i<PIXEL_LIMIT;i++) {
|
||||
if (pixels[i]->size.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};
|
||||
}
|
||||
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user