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[0]=16;
|
||||||
PLAYER_COORDS[1]=6;
|
PLAYER_COORDS[1]=6;
|
||||||
}break;
|
}break;
|
||||||
|
case cutscene::RAINING_IN_DOME:{
|
||||||
|
applyPixelEffect(HURRICANE,GetMapFileCoords(7,11));
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
for (int i=0;i<8;i++) {
|
for (int i=0;i<8;i++) {
|
||||||
CUTSCENE_FLAGS[i]=false;
|
CUTSCENE_FLAGS[i]=false;
|
||||||
@ -958,15 +961,15 @@ public:
|
|||||||
PIXEL_EFFECT_TRANSPARENCY=0;
|
PIXEL_EFFECT_TRANSPARENCY=0;
|
||||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||||
if (PLAYER_SELECTED_TARGET==-2) {
|
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 {
|
} 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 {
|
} else {
|
||||||
if (CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->selectedMove->damage<0) {
|
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 {
|
} 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);
|
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) {
|
if (EFFECT_TIMER>ref->effectTime) {
|
||||||
BATTLE_STATE=battle::DAMAGE_RESOLUTION;
|
BATTLE_STATE=battle::DAMAGE_RESOLUTION;
|
||||||
EFFECT_TIMER=0;
|
EFFECT_TIMER=0;
|
||||||
|
clearPixelEffect();
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
case battle::DAMAGE_RESOLUTION:{
|
case battle::DAMAGE_RESOLUTION:{
|
||||||
@ -1099,7 +1087,7 @@ public:
|
|||||||
CUTSCENE_OBJS[0]->x-=MOVE_SPD;
|
CUTSCENE_OBJS[0]->x-=MOVE_SPD;
|
||||||
}
|
}
|
||||||
if (MoveCameraTowardsPoint(GetMapFileCoords(7,11))) {
|
if (MoveCameraTowardsPoint(GetMapFileCoords(7,11))) {
|
||||||
//Go to next part of cutscene.
|
PlayCutscene(cutscene::RAINING_IN_DOME);
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
}
|
}
|
||||||
@ -1162,6 +1150,25 @@ public:
|
|||||||
}
|
}
|
||||||
}break;
|
}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() {
|
void advanceMessageBox() {
|
||||||
@ -1265,15 +1272,6 @@ public:
|
|||||||
} else {
|
} 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});
|
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));
|
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;
|
}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";
|
//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) {
|
if (messageBoxVisible) {
|
||||||
DrawDialogBox({4,HEIGHT-60},{WIDTH/2,16},Pixel(18, 0, 33,180));
|
DrawDialogBox({4,HEIGHT-60},{WIDTH/2,16},Pixel(18, 0, 33,180));
|
||||||
DrawDialogBox({0,HEIGHT-48},{WIDTH,48},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;
|
CUTSCENE_DISPLAYED_CARD=POWER;
|
||||||
}
|
}
|
||||||
|
|
||||||
void applyPixelEffect(WEATHER_POWER*power,int x,int y) {
|
void applyPixelEffect(WEATHER_POWER*power,vf2d pos) {
|
||||||
SetDrawTarget(nullptr);
|
SetDrawTarget(nullptr);
|
||||||
Clear(BLANK);
|
Clear(BLANK);
|
||||||
SetDrawTarget(1);
|
SetDrawTarget(1);
|
||||||
applyPixelEffect(
|
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->effectSize,
|
||||||
power->effect->pos_low,
|
power->effect->pos_low,
|
||||||
power->effect->pos_high,
|
power->effect->pos_high,
|
||||||
@ -1793,6 +1802,7 @@ public:
|
|||||||
|
|
||||||
void clearPixelEffect() {
|
void clearPixelEffect() {
|
||||||
PIXEL_LIMIT=0;
|
PIXEL_LIMIT=0;
|
||||||
|
PIXEL_EFFECT_TRANSPARENCY=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Returns a number between 0.0 and X.
|
//Returns a number between 0.0 and X.
|
||||||
@ -1804,7 +1814,7 @@ public:
|
|||||||
return random(val2-val1)+val1;
|
return random(val2-val1)+val1;
|
||||||
}
|
}
|
||||||
|
|
||||||
vi2d GetMapFileCoords(int ln,int col) {
|
vf2d GetMapFileCoords(int ln,int col) {
|
||||||
return {col-1,ln-3};
|
return {col-1,ln-3};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user