Merge branch 'master' of https://github.com/cuckydev/Cave-Story-Engine-2
This commit is contained in:
commit
905ae02d77
9 changed files with 130 additions and 36 deletions
|
@ -441,7 +441,7 @@ int ModeAction()
|
|||
ClearArmsData();
|
||||
ClearItemData();
|
||||
ClearPermitStage();
|
||||
//StartMapping();
|
||||
StartMapping();
|
||||
InitFlags();
|
||||
InitBossLife();
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include "CommonDefines.h"
|
||||
#include "Draw.h"
|
||||
#include "Sound.h"
|
||||
#include "PixTone.h"
|
||||
|
||||
bool LoadGenericData()
|
||||
{
|
||||
|
@ -51,6 +53,34 @@ bool LoadGenericData()
|
|||
MakeSurface_Generic(320, 240, SURFACE_ID_LEVEL_SPRITESET_1);
|
||||
MakeSurface_Generic(320, 240, SURFACE_ID_LEVEL_SPRITESET_2);
|
||||
MakeSurface_Generic(WINDOW_WIDTH, 240, SURFACE_ID_CREDIT_CAST);
|
||||
|
||||
char path[0x100];
|
||||
uint8_t *buf = nullptr;
|
||||
size_t len;
|
||||
|
||||
for (unsigned int n = 0; n < SOUND_NO; n++)
|
||||
{
|
||||
sprintf(path, "%2.2X.pxt", n);
|
||||
|
||||
if (LoadPxt(path, &buf, &len))
|
||||
{
|
||||
lpSECONDARYBUFFER[n] = new SOUNDBUFFER(len);
|
||||
|
||||
uint8_t *sBuf;
|
||||
size_t sLen;
|
||||
lpSECONDARYBUFFER[n]->Lock(&sBuf, &sLen);
|
||||
memcpy(sBuf, buf, sLen);
|
||||
lpSECONDARYBUFFER[n]->Unlock();
|
||||
lpSECONDARYBUFFER[n]->SetFrequency(22050);
|
||||
}
|
||||
|
||||
//Free buffer, we're done with it
|
||||
if (buf)
|
||||
{
|
||||
free(buf);
|
||||
buf = nullptr;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <stdint.h>
|
||||
|
||||
#include "WindowsWrapper.h"
|
||||
|
||||
#include "CommonDefines.h"
|
||||
|
@ -7,9 +9,12 @@
|
|||
#include "Game.h"
|
||||
#include "KeyControl.h"
|
||||
#include "Map.h"
|
||||
#include "Stage.h"
|
||||
#include "MyChar.h"
|
||||
#include "Main.h"
|
||||
|
||||
int8_t gMapping[0x80];
|
||||
|
||||
void WriteMiniMapLine(int line)
|
||||
{
|
||||
RECT rcLevel[4];
|
||||
|
@ -170,4 +175,19 @@ int MiniMapLoop()
|
|||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
bool IsMapping()
|
||||
{
|
||||
return gMapping[gStageNo] != 0;
|
||||
}
|
||||
|
||||
void StartMapping()
|
||||
{
|
||||
memset(gMapping, 0, 0x80u);
|
||||
}
|
||||
|
||||
void SetMapping(int a)
|
||||
{
|
||||
gMapping[a] = 1;
|
||||
}
|
||||
|
|
|
@ -1,2 +1,9 @@
|
|||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
extern int8_t gMapping[0x80];
|
||||
|
||||
int MiniMapLoop();
|
||||
bool IsMapping();
|
||||
void StartMapping();
|
||||
void SetMapping(int a);
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "PixTone.h"
|
||||
|
||||
int8_t gWaveModelTable[6][0x100];
|
||||
bool wave_tables_made;
|
||||
|
||||
void MakeWaveTables()
|
||||
{
|
||||
|
@ -72,6 +73,13 @@ double fgetv(FILE *fp) // Load a numeric value from text file; one per line.
|
|||
|
||||
bool MakePixelWaveData(const std::vector<double>& pxtData, uint8_t *data)
|
||||
{
|
||||
//Make wave tables if not created already
|
||||
if (!wave_tables_made)
|
||||
{
|
||||
MakeWaveTables();
|
||||
wave_tables_made = true;
|
||||
}
|
||||
|
||||
//Get some envelope stuff
|
||||
char envelopeTable[0x100];
|
||||
memset(envelopeTable, 0, sizeof(envelopeTable));
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "Fade.h"
|
||||
#include "ArmsItem.h"
|
||||
#include "Flags.h"
|
||||
#include "MiniMap.h"
|
||||
#include "MyChar.h"
|
||||
#include "Frame.h"
|
||||
#include "ValueView.h"
|
||||
|
@ -101,7 +102,7 @@ bool LoadProfile(char *name)
|
|||
memcpy(gArmsData, profile.arms, sizeof(gArmsData));
|
||||
memcpy(gItemData, profile.items, sizeof(gItemData));
|
||||
//memcpy(gPermitStage, profile.permitstage, 0x40u);
|
||||
//memcpy(gMapping, profile.permit_mapping, 0x80u);
|
||||
memcpy(gMapping, profile.permit_mapping, 0x80);
|
||||
memcpy(gFlagNPC, profile.flags, 1000);
|
||||
|
||||
//Load stage
|
||||
|
@ -149,7 +150,7 @@ bool InitializeGame()
|
|||
ClearArmsData();
|
||||
ClearItemData();
|
||||
ClearPermitStage();
|
||||
//StartMapping();
|
||||
StartMapping();
|
||||
InitFlags();
|
||||
if (!TransferStage(13, 200, 10, 8))
|
||||
return false;
|
||||
|
|
|
@ -268,38 +268,6 @@ bool InitDirectSound()
|
|||
|
||||
//Start organya
|
||||
StartOrganya();
|
||||
|
||||
//Load sound effects
|
||||
MakeWaveTables();
|
||||
|
||||
char path[0x100];
|
||||
uint8_t *buf = nullptr;
|
||||
size_t len;
|
||||
|
||||
for (unsigned int n = 0; n < SOUND_NO; n++)
|
||||
{
|
||||
sprintf(path, "%2.2X.pxt", n);
|
||||
|
||||
if (LoadPxt(path, &buf, &len))
|
||||
{
|
||||
lpSECONDARYBUFFER[n] = new SOUNDBUFFER(len);
|
||||
|
||||
uint8_t *sBuf;
|
||||
size_t sLen;
|
||||
lpSECONDARYBUFFER[n]->Lock(&sBuf, &sLen);
|
||||
memcpy(sBuf, buf, sLen);
|
||||
lpSECONDARYBUFFER[n]->Unlock();
|
||||
lpSECONDARYBUFFER[n]->SetFrequency(22050);
|
||||
}
|
||||
|
||||
//Free buffer, we're done with it
|
||||
if (buf)
|
||||
{
|
||||
free(buf);
|
||||
buf = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@ struct STAGE_TABLE
|
|||
char name[0x20];
|
||||
};
|
||||
|
||||
extern int gStageNo;
|
||||
|
||||
bool TransferStage(int no, int w, int x, int y);
|
||||
void ChangeMusic(int no);
|
||||
void ReCallMusic();
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "Flags.h"
|
||||
#include "Profile.h"
|
||||
#include "Map.h"
|
||||
#include "MiniMap.h"
|
||||
#include "MapName.h"
|
||||
#include "KeyControl.h"
|
||||
#include "NpChar.h"
|
||||
|
@ -677,6 +678,17 @@ int TextScriptProc()
|
|||
y = GetTextScriptNo(gTS.p_read + 9);
|
||||
AddPermitStage(x, y);
|
||||
gTS.p_read += 13;
|
||||
else if (IS_COMMAND('M','P','+'))
|
||||
{
|
||||
x = GetTextScriptNo(gTS.p_read + 4);
|
||||
SetMapping(x);
|
||||
gTS.p_read += 8;
|
||||
}
|
||||
else if (IS_COMMAND('U','N','I'))
|
||||
{
|
||||
z = GetTextScriptNo(gTS.p_read + 4);
|
||||
ChangeMyUnit(z);
|
||||
gTS.p_read += 8;
|
||||
}
|
||||
else if (IS_COMMAND('T','R','A'))
|
||||
{
|
||||
|
@ -867,6 +879,41 @@ int TextScriptProc()
|
|||
else
|
||||
gTS.p_read += 13;
|
||||
}
|
||||
else if (IS_COMMAND('U','N','J'))
|
||||
{
|
||||
x = GetTextScriptNo(gTS.p_read + 4);
|
||||
z = GetTextScriptNo(gTS.p_read + 9);
|
||||
if (GetUnitMyChar() == x)
|
||||
JumpTextScript(z);
|
||||
else
|
||||
gTS.p_read += 13;
|
||||
}
|
||||
else if (IS_COMMAND('E','C','J'))
|
||||
{
|
||||
x = GetTextScriptNo(gTS.p_read + 4);
|
||||
z = GetTextScriptNo(gTS.p_read + 9);
|
||||
if (GetNpCharAlive(x))
|
||||
JumpTextScript(z);
|
||||
else
|
||||
gTS.p_read += 13;
|
||||
}
|
||||
else if (IS_COMMAND('E','C','J'))
|
||||
{
|
||||
x = GetTextScriptNo(gTS.p_read + 4);
|
||||
z = GetTextScriptNo(gTS.p_read + 9);
|
||||
if (IsNpCharCode(x))
|
||||
JumpTextScript(z);
|
||||
else
|
||||
gTS.p_read += 13;
|
||||
}
|
||||
else if (IS_COMMAND('M','P','J'))
|
||||
{
|
||||
x = GetTextScriptNo(gTS.p_read + 4);
|
||||
if (IsMapping())
|
||||
JumpTextScript(x);
|
||||
else
|
||||
gTS.p_read += 8;
|
||||
}
|
||||
else if (IS_COMMAND('S','S','S'))
|
||||
{
|
||||
x = GetTextScriptNo(gTS.p_read + 4);
|
||||
|
@ -950,6 +997,17 @@ int TextScriptProc()
|
|||
ReCallMusic();
|
||||
gTS.p_read += 4;
|
||||
}
|
||||
else if (IS_COMMAND('M','L','P'))
|
||||
{
|
||||
gTS.p_read += 4;
|
||||
bExit = true;
|
||||
|
||||
int tscRet = MiniMapLoop();
|
||||
if (tscRet == 0)
|
||||
return 0;
|
||||
if (tscRet == 2)
|
||||
return 2;
|
||||
}
|
||||
else if (IS_COMMAND('S','L','P'))
|
||||
{
|
||||
bExit = true;
|
||||
|
|
Loading…
Add table
Reference in a new issue