Merge branch 'master' of https://github.com/cuckydev/Cave-Story-Engine-2
This commit is contained in:
commit
ca031aebfe
9 changed files with 154 additions and 9 deletions
1
Makefile
1
Makefile
|
@ -91,6 +91,7 @@ SOURCES = \
|
|||
Shoot \
|
||||
Sound \
|
||||
Stage \
|
||||
Star \
|
||||
SelStage \
|
||||
TextScr \
|
||||
Triangle \
|
||||
|
|
BIN
build/Save Curly Booster v2 Spur Whimsical Star.dat
Normal file
BIN
build/Save Curly Booster v2 Spur Whimsical Star.dat
Normal file
Binary file not shown.
|
@ -1018,6 +1018,12 @@ void ActBullet_SuperBom(BULLET *bul, int level)
|
|||
}
|
||||
}
|
||||
|
||||
void ActBullet_Star(BULLET *bul)
|
||||
{
|
||||
if (++bul->count1 > bul->life_count)
|
||||
bul->cond = 0;
|
||||
}
|
||||
|
||||
void ActBullet()
|
||||
{
|
||||
for (int i = 0; i < BULLET_MAX; i++)
|
||||
|
@ -1092,7 +1098,11 @@ void ActBullet()
|
|||
case 33:
|
||||
ActBullet_SuperBom(&gBul[i], 3);
|
||||
break;
|
||||
|
||||
case 45:
|
||||
ActBullet_Star(&gBul[i]);
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
11
src/Game.cpp
11
src/Game.cpp
|
@ -17,6 +17,7 @@
|
|||
#include "Bullet.h"
|
||||
#include "BulHit.h"
|
||||
#include "Shoot.h"
|
||||
#include "Star.h"
|
||||
#include "Fade.h"
|
||||
#include "Frame.h"
|
||||
#include "Flags.h"
|
||||
|
@ -103,7 +104,7 @@ int ModeOpening()
|
|||
{
|
||||
InitNpChar();
|
||||
InitCaret();
|
||||
//InitStar();
|
||||
InitStar();
|
||||
InitFade();
|
||||
InitFlash();
|
||||
InitBossLife();
|
||||
|
@ -245,7 +246,7 @@ int ModeTitle()
|
|||
|
||||
//Reset everything
|
||||
InitCaret();
|
||||
//InitStar();
|
||||
InitStar();
|
||||
CutNoise();
|
||||
|
||||
//Create variables
|
||||
|
@ -436,7 +437,7 @@ int ModeAction()
|
|||
InitNpChar();
|
||||
InitBullet();
|
||||
InitCaret();
|
||||
//InitStar();
|
||||
InitStar();
|
||||
InitFade();
|
||||
InitFlash();
|
||||
ClearArmsData();
|
||||
|
@ -470,7 +471,7 @@ int ModeAction()
|
|||
else
|
||||
ActMyChar(false);
|
||||
|
||||
//ActStar();
|
||||
ActStar();
|
||||
ActNpChar();
|
||||
ActBossChar();
|
||||
ActValueView();
|
||||
|
@ -513,7 +514,7 @@ int ModeAction()
|
|||
PutNpChar(frame_x, frame_y);
|
||||
PutBullet(frame_x, frame_y);
|
||||
PutMyChar(frame_x, frame_y);
|
||||
//PutStar(frame_x, frame_y);
|
||||
PutStar(frame_x, frame_y);
|
||||
PutMapDataVector(frame_x, frame_y);
|
||||
PutStage_Front(frame_x, frame_y);
|
||||
PutFront(frame_x, frame_y);
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "TextScr.h"
|
||||
#include "Flags.h"
|
||||
#include "Game.h"
|
||||
#include "Star.h"
|
||||
#include "Caret.h"
|
||||
|
||||
MYCHAR gMC;
|
||||
|
@ -740,7 +741,7 @@ void SetMyCharPosition(int x, int y)
|
|||
gMC.xm = 0;
|
||||
gMC.ym = 0;
|
||||
gMC.cond &= ~1;
|
||||
//InitStar();
|
||||
InitStar();
|
||||
}
|
||||
|
||||
void MoveMyChar(int x, int y)
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "Flags.h"
|
||||
#include "MiniMap.h"
|
||||
#include "MyChar.h"
|
||||
#include "Star.h"
|
||||
#include "NpChar.h"
|
||||
#include "Frame.h"
|
||||
#include "SelStage.h"
|
||||
|
@ -215,7 +216,7 @@ bool LoadProfile(char *name)
|
|||
SetFrameTargetMyChar(16);
|
||||
InitBossLife();
|
||||
CutNoise();
|
||||
//InitStar();
|
||||
InitStar();
|
||||
ClearValueView();
|
||||
gCurlyShoot_wait = 0;
|
||||
return true;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "Map.h"
|
||||
#include "MapName.h"
|
||||
#include "MyChar.h"
|
||||
#include "Bullet.h"
|
||||
#include "Boss.h"
|
||||
#include "Draw.h"
|
||||
#include "Tags.h"
|
||||
|
@ -192,7 +193,7 @@ bool TransferStage(int no, int w, int x, int y)
|
|||
|
||||
StartTextScript(w);
|
||||
SetFrameMyChar();
|
||||
//ClearBullet();
|
||||
ClearBullet();
|
||||
InitCaret();
|
||||
ClearValueView();
|
||||
ResetQuake();
|
||||
|
|
126
src/Star.cpp
Normal file
126
src/Star.cpp
Normal file
|
@ -0,0 +1,126 @@
|
|||
#include <string.h>
|
||||
|
||||
#include "WindowsWrapper.h"
|
||||
|
||||
#include "MyChar.h"
|
||||
#include "Draw.h"
|
||||
#include "Bullet.h"
|
||||
#include "Game.h"
|
||||
|
||||
static struct
|
||||
{
|
||||
int cond;
|
||||
int code;
|
||||
int direct;
|
||||
int x;
|
||||
int y;
|
||||
int xm;
|
||||
int ym;
|
||||
int act_no;
|
||||
int act_wait;
|
||||
int ani_no;
|
||||
int ani_wait;
|
||||
int view_left;
|
||||
int view_top;
|
||||
RECT rect;
|
||||
} star[3];
|
||||
|
||||
void InitStar()
|
||||
{
|
||||
//Clear stars
|
||||
memset(star, 0, sizeof(star));
|
||||
|
||||
//Position
|
||||
star[0].x = gMC.x;
|
||||
star[0].y = gMC.y;
|
||||
|
||||
star[1].x = gMC.x;
|
||||
star[1].y = gMC.y;
|
||||
|
||||
star[2].x = gMC.x;
|
||||
star[2].y = gMC.y;
|
||||
|
||||
//Speed
|
||||
star[0].xm = 0x400;
|
||||
star[0].ym = -0x200;
|
||||
|
||||
star[1].xm = -0x200;
|
||||
star[1].ym = 0x400;
|
||||
|
||||
star[2].xm = 0x200;
|
||||
star[2].ym = 0x200;
|
||||
}
|
||||
|
||||
void ActStar()
|
||||
{
|
||||
static int a;
|
||||
a++;
|
||||
a %= 3;
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
if (i)
|
||||
{
|
||||
if (star[i - 1].x >= star[i].x)
|
||||
star[i].xm += 0x80;
|
||||
else
|
||||
star[i].xm -= 0x80;
|
||||
|
||||
if (star[i - 1].y >= star[i].y)
|
||||
star[i].ym += 0xAA;
|
||||
else
|
||||
star[i].ym -= 0xAA;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gMC.x >= star[0].x)
|
||||
star[0].xm += 0x80;
|
||||
else
|
||||
star[0].xm -= 0x80;
|
||||
if (gMC.y >= star[0].y)
|
||||
star[0].ym += 0xAA;
|
||||
else
|
||||
star[0].ym -= 0xAA;
|
||||
}
|
||||
|
||||
if (star[i].xm > 0xA00)
|
||||
star[i].xm = 0xA00;
|
||||
if (star[i].xm < -0xA00)
|
||||
star[i].xm = -0xA00;
|
||||
if (star[i].ym > 0xA00)
|
||||
star[i].ym = 0xA00;
|
||||
if (star[i].ym < -0xA00)
|
||||
star[i].ym = -0xA00;
|
||||
if (star[i].xm > 0xA00)
|
||||
star[i].xm = 0xA00;
|
||||
if (star[i].xm < -0xA00)
|
||||
star[i].xm = -0xA00;
|
||||
if (star[i].ym > 0xA00)
|
||||
star[i].ym = 0xA00;
|
||||
if (star[i].ym < -0xA00)
|
||||
star[i].ym = -0xA00;
|
||||
|
||||
star[i].x += star[i].xm;
|
||||
star[i].y += star[i].ym;
|
||||
|
||||
if (gMC.star > i && (gMC.equip & 0x80) && (g_GameFlags & 2) && a == i)
|
||||
SetBullet(45, star[a].x, star[a].y, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void __cdecl PutStar(int fx, int fy)
|
||||
{
|
||||
RECT rc[3];
|
||||
rc[0] = {192, 0, 200, 8};
|
||||
rc[1] = {192, 8, 200, 16};
|
||||
rc[2] = {192, 16, 200, 24};
|
||||
|
||||
if (!(gMC.cond & 2) && (gMC.equip & 0x80))
|
||||
{
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
if (gMC.star > i)
|
||||
PutBitmap3(&grcGame, star[i].x / 0x200 - fx / 0x200 - 4, star[i].y / 0x200 - fy / 0x200 - 4, &rc[i], 16);
|
||||
}
|
||||
}
|
||||
}
|
4
src/Star.h
Normal file
4
src/Star.h
Normal file
|
@ -0,0 +1,4 @@
|
|||
#pragma once
|
||||
void InitStar();
|
||||
void ActStar();
|
||||
void PutStar(int fx, int fy);
|
Loading…
Add table
Reference in a new issue