Merge pull request #23 from GabrielRavier/improveCToE

Improve files starting with C, D and E
This commit is contained in:
Clownacy 2019-05-07 17:18:19 +00:00 committed by GitHub
commit c06b30c680
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 115 additions and 114 deletions

View file

@ -186,7 +186,7 @@ void ActCaret05(CARET *crt)
++crt->ani_no; ++crt->ani_no;
} }
if ( crt->ani_no > 6 ) if (crt->ani_no > 6)
crt->cond = 0; crt->cond = 0;
crt->x += 0x80; crt->x += 0x80;
@ -468,9 +468,8 @@ void ActCaret17(CARET *crt)
crt->rect = rcLeft[1]; crt->rect = rcLeft[1];
} }
//Tables // Tables
CARET_TABLE gCaretTable[18] = CARET_TABLE gCaretTable[18] = {
{
{0, 0}, {0, 0},
{0x800, 0x800}, {0x800, 0x800},
{0x1000, 0x1000}, {0x1000, 0x1000},

View file

@ -1,6 +1,6 @@
#pragma once #pragma once
#define PATH_LENGTH 260 //Pixel had the path size locked to 260 (dangerously low), if you tried to open the executable in a path with more than around 220 characters, it'd crash. #define PATH_LENGTH 260 // Pixel had the path size locked to 260 (dangerously low), if you tried to open the executable in a path with more than around 220 characters, it'd crash.
#define WINDOW_WIDTH 320 #define WINDOW_WIDTH 320
#define WINDOW_HEIGHT 240 #define WINDOW_HEIGHT 240

View file

@ -56,7 +56,7 @@ BOOL Flip_SystemTask()
if (!SystemTask()) if (!SystemTask())
return FALSE; return FALSE;
//Framerate limiter // Framerate limiter
static uint32_t timePrev; static uint32_t timePrev;
const uint32_t timeNow = SDL_GetTicks(); const uint32_t timeNow = SDL_GetTicks();
@ -81,15 +81,15 @@ BOOL StartDirectDraw(int lMagnification, int lColourDepth)
{ {
(void)lColourDepth; (void)lColourDepth;
//Initialize rendering // Initialize rendering
SDL_InitSubSystem(SDL_INIT_VIDEO); SDL_InitSubSystem(SDL_INIT_VIDEO);
//Create renderer // Create renderer
gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED); gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED);
if (gRenderer != NULL) if (gRenderer != NULL)
{ {
//Print the name of the renderer SDL2 is using // Print the name of the renderer SDL2 is using
SDL_RendererInfo info; SDL_RendererInfo info;
SDL_GetRendererInfo(gRenderer, &info); SDL_GetRendererInfo(gRenderer, &info);
printf("Renderer: %s\n", info.name); printf("Renderer: %s\n", info.name);
@ -120,10 +120,10 @@ BOOL StartDirectDraw(int lMagnification, int lColourDepth)
void EndDirectDraw() void EndDirectDraw()
{ {
//Quit sub-system // Quit sub-system
SDL_QuitSubSystem(SDL_INIT_VIDEO); SDL_QuitSubSystem(SDL_INIT_VIDEO);
//Release all surfaces // Release all surfaces
for (int i = 0; i < SURFACE_ID_MAX; i++) for (int i = 0; i < SURFACE_ID_MAX; i++)
ReleaseSurface(i); ReleaseSurface(i);
} }
@ -143,7 +143,7 @@ static bool IsEnableBitmap(SDL_RWops *fp)
void ReleaseSurface(int s) void ReleaseSurface(int s)
{ {
//Release the surface we want to release // Release the surface we want to release
if (surf[s].in_use) if (surf[s].in_use)
{ {
SDL_DestroyTexture(surf[s].texture); SDL_DestroyTexture(surf[s].texture);
@ -172,7 +172,7 @@ BOOL MakeSurface_Generic(int bxsize, int bysize, Surface_Ids surf_no)
} }
else else
{ {
//Create surface // Create surface
surf[surf_no].surface = SDL_CreateRGBSurfaceWithFormat(0, bxsize * magnification, bysize * magnification, 0, SDL_PIXELFORMAT_RGB24); surf[surf_no].surface = SDL_CreateRGBSurfaceWithFormat(0, bxsize * magnification, bysize * magnification, 0, SDL_PIXELFORMAT_RGB24);
SDL_SetSurfaceBlendMode(surf[surf_no].surface, SDL_BLENDMODE_NONE); SDL_SetSurfaceBlendMode(surf[surf_no].surface, SDL_BLENDMODE_NONE);
@ -320,7 +320,7 @@ static BOOL LoadBitmap_File(const char *name, Surface_Ids surf_no, bool create_s
char path[PATH_LENGTH]; char path[PATH_LENGTH];
SDL_RWops *fp; SDL_RWops *fp;
//Attempt to load PBM // Attempt to load PBM
sprintf(path, "%s/%s.pbm", gDataPath, name); sprintf(path, "%s/%s.pbm", gDataPath, name);
fp = SDL_RWFromFile(path, "rb"); fp = SDL_RWFromFile(path, "rb");
if (fp) if (fp)
@ -338,7 +338,7 @@ static BOOL LoadBitmap_File(const char *name, Surface_Ids surf_no, bool create_s
} }
} }
//Attempt to load BMP // Attempt to load BMP
sprintf(path, "%s/%s.bmp", gDataPath, name); sprintf(path, "%s/%s.bmp", gDataPath, name);
fp = SDL_RWFromFile(path, "rb"); fp = SDL_RWFromFile(path, "rb");
if (fp) if (fp)
@ -412,22 +412,22 @@ static SDL_Rect RectToSDLRectScaled(RECT *rect)
void BackupSurface(Surface_Ids surf_no, RECT *rect) void BackupSurface(Surface_Ids surf_no, RECT *rect)
{ {
//Get renderer size // Get renderer size
int w, h; int w, h;
SDL_GetRendererOutputSize(gRenderer, &w, &h); SDL_GetRendererOutputSize(gRenderer, &w, &h);
//Get texture of what's currently rendered on screen // Get texture of what's currently rendered on screen
SDL_Surface *surface = SDL_CreateRGBSurfaceWithFormat(0, w, h, 0, SDL_PIXELFORMAT_RGB24); SDL_Surface *surface = SDL_CreateRGBSurfaceWithFormat(0, w, h, 0, SDL_PIXELFORMAT_RGB24);
SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_NONE); SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_NONE);
SDL_RenderReadPixels(gRenderer, NULL, SDL_PIXELFORMAT_RGB24, surface->pixels, surface->pitch); SDL_RenderReadPixels(gRenderer, NULL, SDL_PIXELFORMAT_RGB24, surface->pixels, surface->pitch);
//Get rects // Get rects
SDL_Rect frameRect = RectToSDLRectScaled(rect); SDL_Rect frameRect = RectToSDLRectScaled(rect);
SDL_BlitSurface(surface, &frameRect, surf[surf_no].surface, &frameRect); SDL_BlitSurface(surface, &frameRect, surf[surf_no].surface, &frameRect);
surf[surf_no].needs_updating = true; surf[surf_no].needs_updating = true;
//Free surface // Free surface
SDL_FreeSurface(surface); SDL_FreeSurface(surface);
} }
@ -439,40 +439,39 @@ static void DrawBitmap(RECT *rcView, int x, int y, RECT *rect, Surface_Ids surf_
surf[surf_no].needs_updating = false; surf[surf_no].needs_updating = false;
} }
//Get SDL_Rects // Get SDL_Rects
SDL_Rect clipRect = RectToSDLRectScaled(rcView); SDL_Rect clipRect = RectToSDLRectScaled(rcView);
SDL_Rect frameRect = RectToSDLRectScaled(rect); SDL_Rect frameRect = RectToSDLRectScaled(rect);
//Get dest rect // Get dest rect
SDL_Rect destRect = {x * magnification, y * magnification, frameRect.w, frameRect.h}; SDL_Rect destRect = {x * magnification, y * magnification, frameRect.w, frameRect.h};
//Set cliprect // Set cliprect
SDL_RenderSetClipRect(gRenderer, &clipRect); SDL_RenderSetClipRect(gRenderer, &clipRect);
SDL_SetTextureBlendMode(surf[surf_no].texture, transparent ? SDL_BLENDMODE_BLEND : SDL_BLENDMODE_NONE); SDL_SetTextureBlendMode(surf[surf_no].texture, transparent ? SDL_BLENDMODE_BLEND : SDL_BLENDMODE_NONE);
//Draw to screen // Draw to screen
if (SDL_RenderCopy(gRenderer, surf[surf_no].texture, &frameRect, &destRect) < 0) if (SDL_RenderCopy(gRenderer, surf[surf_no].texture, &frameRect, &destRect) < 0)
printf("Failed to draw texture %d\nSDL Error: %s\n", surf_no, SDL_GetError()); printf("Failed to draw texture %d\nSDL Error: %s\n", surf_no, SDL_GetError());
//Undo cliprect // Undo cliprect
SDL_RenderSetClipRect(gRenderer, NULL); SDL_RenderSetClipRect(gRenderer, NULL);
} }
void PutBitmap3(RECT *rcView, int x, int y, RECT *rect, Surface_Ids surf_no) //Transparency void PutBitmap3(RECT *rcView, int x, int y, RECT *rect, Surface_Ids surf_no) // Transparency
{ {
DrawBitmap(rcView, x, y, rect, surf_no, true); DrawBitmap(rcView, x, y, rect, surf_no, true);
} }
void PutBitmap4(RECT *rcView, int x, int y, RECT *rect, Surface_Ids surf_no) //No Transparency void PutBitmap4(RECT *rcView, int x, int y, RECT *rect, Surface_Ids surf_no) // No Transparency
{ {
DrawBitmap(rcView, x, y, rect, surf_no, false); DrawBitmap(rcView, x, y, rect, surf_no, false);
} }
void Surface2Surface(int x, int y, RECT *rect, int to, int from) void Surface2Surface(int x, int y, RECT *rect, int to, int from)
{ {
//Get rects // Get rects
SDL_Rect rcSet = {x * magnification, y * magnification, (rect->right - rect->left) * magnification, (rect->bottom - rect->top) * magnification}; SDL_Rect rcSet = {x * magnification, y * magnification, (rect->right - rect->left) * magnification, (rect->bottom - rect->top) * magnification};
SDL_Rect frameRect = RectToSDLRectScaled(rect); SDL_Rect frameRect = RectToSDLRectScaled(rect);
@ -488,10 +487,10 @@ unsigned long GetCortBoxColor(unsigned long col)
void CortBox(RECT *rect, uint32_t col) void CortBox(RECT *rect, uint32_t col)
{ {
//Get rect // Get rect
SDL_Rect destRect = RectToSDLRectScaled(rect); SDL_Rect destRect = RectToSDLRectScaled(rect);
//Set colour and draw // Set colour and draw
const unsigned char col_red = col & 0x0000FF; const unsigned char col_red = col & 0x0000FF;
const unsigned char col_green = (col & 0x00FF00) >> 8; const unsigned char col_green = (col & 0x00FF00) >> 8;
const unsigned char col_blue = (col & 0xFF0000) >> 16; const unsigned char col_blue = (col & 0xFF0000) >> 16;
@ -501,10 +500,10 @@ void CortBox(RECT *rect, uint32_t col)
void CortBox2(RECT *rect, uint32_t col, Surface_Ids surf_no) void CortBox2(RECT *rect, uint32_t col, Surface_Ids surf_no)
{ {
//Get rect // Get rect
SDL_Rect destRect = RectToSDLRectScaled(rect); SDL_Rect destRect = RectToSDLRectScaled(rect);
//Set colour and draw // Set colour and draw
const unsigned char col_red = col & 0x0000FF; const unsigned char col_red = col & 0x0000FF;
const unsigned char col_green = (col & 0x00FF00) >> 8; const unsigned char col_green = (col & 0x00FF00) >> 8;
const unsigned char col_blue = (col & 0xFF0000) >> 16; const unsigned char col_blue = (col & 0xFF0000) >> 16;
@ -558,7 +557,7 @@ static unsigned char* GetFontFromWindows(size_t *data_size, const char *font_nam
void InitTextObject(const char *font_name) void InitTextObject(const char *font_name)
{ {
//Get font size // Get font size
unsigned int fontWidth, fontHeight; unsigned int fontWidth, fontHeight;
// The original did this, but Windows would downscale it to 5/10 anyway. // The original did this, but Windows would downscale it to 5/10 anyway.
@ -568,10 +567,13 @@ void InitTextObject(const char *font_name)
fontHeight = 12; fontHeight = 12;
} }
else else
{*/ {
fontWidth = 5 * magnification;
fontHeight = 10 * magnification;
}*/
fontWidth = 5 * magnification; fontWidth = 5 * magnification;
fontHeight = 10 * magnification; fontHeight = 10 * magnification;
// }
size_t data_size; size_t data_size;
#ifdef WINDOWS #ifdef WINDOWS
@ -632,7 +634,7 @@ void PutText2(int x, int y, const char *text, uint32_t color, Surface_Ids surf_n
void EndTextObject() void EndTextObject()
{ {
//Destroy font // Destroy font
UnloadFont(gFont); UnloadFont(gFont);
gFont = NULL; gFont = NULL;
} }

View file

@ -23,32 +23,32 @@ CREDIT Credit;
STRIP Strip[MAX_STRIP]; STRIP Strip[MAX_STRIP];
ILLUSTRATION Illust; ILLUSTRATION Illust;
//Update casts // Update casts
void ActionStripper() void ActionStripper()
{ {
for (int s = 0; s < MAX_STRIP; s++) for (int s = 0; s < MAX_STRIP; s++)
{ {
//Move up // Move up
if (Strip[s].flag & 0x80 && Credit.mode) if (Strip[s].flag & 0x80 && Credit.mode)
Strip[s].y -= 0x100; Strip[s].y -= 0x100;
//Get removed when off-screen // Get removed when off-screen
if (Strip[s].y <= -0x2000) if (Strip[s].y <= -0x2000)
Strip[s].flag = 0; Strip[s].flag = 0;
} }
} }
//Draw casts // Draw casts
void PutStripper() void PutStripper()
{ {
for (int s = 0; s < MAX_STRIP; s++) for (int s = 0; s < MAX_STRIP; s++)
{ {
if (Strip[s].flag & 0x80) if (Strip[s].flag & 0x80)
{ {
//Draw text // Draw text
RECT rc = {0, 16 * s, 320, 16 * s + 16}; RECT rc = {0, 16 * s, 320, 16 * s + 16};
PutBitmap3(&grcFull, (Strip[s].x + ((WINDOW_WIDTH - 320) << 8)) / 0x200, Strip[s].y / 0x200, &rc, SURFACE_ID_CREDIT_CAST); PutBitmap3(&grcFull, (Strip[s].x + ((WINDOW_WIDTH - 320) << 8)) / 0x200, Strip[s].y / 0x200, &rc, SURFACE_ID_CREDIT_CAST);
//Draw character // Draw character
rc.left = 24 * (Strip[s].cast % 13); rc.left = 24 * (Strip[s].cast % 13);
rc.right = rc.left + 24; rc.right = rc.left + 24;
rc.top = 24 * (Strip[s].cast / 13); rc.top = 24 * (Strip[s].cast / 13);
@ -58,21 +58,21 @@ void PutStripper()
} }
} }
//Create a cast object // Create a cast object
void SetStripper(int x, int y, const char *text, int cast) void SetStripper(int x, int y, const char *text, int cast)
{ {
for (int s = 0; s < MAX_STRIP; s++) for (int s = 0; s < MAX_STRIP; s++)
{ {
if (!(Strip[s].flag & 0x80)) if (!(Strip[s].flag & 0x80))
{ {
//Initialize cast property // Initialize cast property
Strip[s].flag = 0x80; Strip[s].flag = 0x80;
Strip[s].x = x; Strip[s].x = x;
Strip[s].y = y; Strip[s].y = y;
Strip[s].cast = cast; Strip[s].cast = cast;
strcpy(Strip[s].str, text); strcpy(Strip[s].str, text);
//Draw text // Draw text
RECT rc = {0, 16 * s, 320, 16 * s + 16}; RECT rc = {0, 16 * s, 320, 16 * s + 16};
CortBox2(&rc, 0, SURFACE_ID_CREDIT_CAST); CortBox2(&rc, 0, SURFACE_ID_CREDIT_CAST);
PutText2(0, 16 * s, text, RGB(0xFF, 0xFF, 0xFE), SURFACE_ID_CREDIT_CAST); PutText2(0, 16 * s, text, RGB(0xFF, 0xFF, 0xFE), SURFACE_ID_CREDIT_CAST);
@ -81,7 +81,7 @@ void SetStripper(int x, int y, const char *text, int cast)
} }
} }
//Regenerate cast text // Regenerate cast text
void RestoreStripper() void RestoreStripper()
{ {
for (int s = 0; s < MAX_STRIP; s++) for (int s = 0; s < MAX_STRIP; s++)
@ -95,22 +95,22 @@ void RestoreStripper()
} }
} }
//Handle the illustration // Handle the illustration
void ActionIllust() void ActionIllust()
{ {
switch (Illust.act_no) switch (Illust.act_no)
{ {
case 0: //Off-screen to the left case 0: // Off-screen to the left
Illust.x = -0x14000; Illust.x = -0x14000;
break; break;
case 1: //Move in from the left case 1: // Move in from the left
Illust.x += 0x5000; Illust.x += 0x5000;
if (Illust.x > 0) if (Illust.x > 0)
Illust.x = 0; Illust.x = 0;
break; break;
case 2: //Move out from the right case 2: // Move out from the right
Illust.x -= 0x5000; Illust.x -= 0x5000;
if (Illust.x < -0x14000) if (Illust.x < -0x14000)
Illust.x = -0x14000; Illust.x = -0x14000;
@ -118,7 +118,7 @@ void ActionIllust()
} }
} }
//Draw illustration // Draw illustration
void PutIllust() void PutIllust()
{ {
RECT rcIllust = {0, 0, 160, 240}; RECT rcIllust = {0, 0, 160, 240};
@ -126,7 +126,7 @@ void PutIllust()
PutBitmap3(&rcClip, (Illust.x + ((WINDOW_WIDTH - 320) << 8)) / 0x200, (WINDOW_HEIGHT - 240) / 2, &rcIllust, SURFACE_ID_CREDITS_IMAGE); PutBitmap3(&rcClip, (Illust.x + ((WINDOW_WIDTH - 320) << 8)) / 0x200, (WINDOW_HEIGHT - 240) / 2, &rcIllust, SURFACE_ID_CREDITS_IMAGE);
} }
//Load illustration // Load illustration
void ReloadIllust(int a) void ReloadIllust(int a)
{ {
char name[16]; char name[16];
@ -134,10 +134,10 @@ void ReloadIllust(int a)
ReloadBitmap_Resource(name, SURFACE_ID_CREDITS_IMAGE); ReloadBitmap_Resource(name, SURFACE_ID_CREDITS_IMAGE);
} }
//Initialize and release credits // Initialize and release credits
void InitCreditScript() void InitCreditScript()
{ {
//Clear script state and casts // Clear script state and casts
memset(&Credit, 0, sizeof(CREDIT)); memset(&Credit, 0, sizeof(CREDIT));
memset(Strip, 0, sizeof(Strip)); memset(Strip, 0, sizeof(Strip));
} }
@ -146,23 +146,23 @@ void ReleaseCreditScript()
{ {
if (Credit.pData) if (Credit.pData)
{ {
//Free script data // Free script data
free(Credit.pData); free(Credit.pData);
Credit.pData = NULL; Credit.pData = NULL;
} }
} }
//Start playing credits // Start playing credits
bool StartCreditScript() bool StartCreditScript()
{ {
//Clear previously existing credits data // Clear previously existing credits data
if (Credit.pData) if (Credit.pData)
{ {
free(Credit.pData); free(Credit.pData);
Credit.pData = NULL; Credit.pData = NULL;
} }
//Open file // Open file
char path[PATH_LENGTH]; char path[PATH_LENGTH];
sprintf(path, "%s/%s", gDataPath, "Credit.tsc"); sprintf(path, "%s/%s", gDataPath, "Credit.tsc");
@ -170,7 +170,7 @@ bool StartCreditScript()
if (Credit.size == -1) if (Credit.size == -1)
return false; return false;
//Allcoate buffer data // Allocate buffer data
Credit.pData = (char*)malloc(Credit.size); Credit.pData = (char*)malloc(Credit.size);
if (Credit.pData == NULL) if (Credit.pData == NULL)
return false; return false;
@ -182,7 +182,7 @@ bool StartCreditScript()
return false; return false;
} }
//Read data // Read data
fread(Credit.pData, 1, Credit.size, fp); fread(Credit.pData, 1, Credit.size, fp);
EncryptionBinaryData2((uint8_t*)Credit.pData, Credit.size); EncryptionBinaryData2((uint8_t*)Credit.pData, Credit.size);
@ -191,30 +191,30 @@ bool StartCreditScript()
fclose(fp); fclose(fp);
#endif #endif
//Reset credits // Reset credits
Credit.offset = 0; Credit.offset = 0;
Credit.wait = 0; Credit.wait = 0;
Credit.mode = 1; Credit.mode = 1;
Illust.x = -0x14000; Illust.x = -0x14000;
Illust.act_no = 0; Illust.act_no = 0;
//Modify cliprect // Modify cliprect
grcGame.left = WINDOW_WIDTH / 2; grcGame.left = WINDOW_WIDTH / 2;
// These three are non-vanilla: for wide/tallscreen support // These three are non-vanilla: for wide/tallscreen support
grcGame.right = ((WINDOW_WIDTH - 320) / 2) + 320; grcGame.right = ((WINDOW_WIDTH - 320) / 2) + 320;
grcGame.top = (WINDOW_HEIGHT - 240) / 2; grcGame.top = (WINDOW_HEIGHT - 240) / 2;
grcGame.bottom = ((WINDOW_HEIGHT - 240) / 2) + 240; grcGame.bottom = ((WINDOW_HEIGHT - 240) / 2) + 240;
//Reload casts // Reload casts
if (!ReloadBitmap_File("casts", SURFACE_ID_CASTS)) if (!ReloadBitmap_File("casts", SURFACE_ID_CASTS))
return false; return false;
//Clear casts // Clear casts
memset(Strip, 0, sizeof(Strip)); memset(Strip, 0, sizeof(Strip));
return true; return true;
} }
//Get number from text (4 digit) // Get number from text (4 digit)
int GetScriptNumber(const char *text) int GetScriptNumber(const char *text)
{ {
return 1000 * text[0] - 48000 + return 1000 * text[0] - 48000 +
@ -223,19 +223,19 @@ int GetScriptNumber(const char *text)
text[3] - 48; text[3] - 48;
} }
//Parse credits // Parse credits
void ActionCredit_Read() void ActionCredit_Read()
{ {
while (Credit.offset < Credit.size) while (Credit.offset < Credit.size)
{ {
//Get character // Get character
uint8_t character = Credit.pData[Credit.offset]; uint8_t character = Credit.pData[Credit.offset];
int a, b, len; int a, b, len;
switch (character) switch (character)
{ {
case '[': //Create cast case '[': // Create cast
//Get the range for the cast text // Get the range for the cast text
a = ++Credit.offset; a = ++Credit.offset;
while (Credit.pData[a] != ']') while (Credit.pData[a] != ']')
@ -248,35 +248,35 @@ void ActionCredit_Read()
len = a - Credit.offset; len = a - Credit.offset;
//Copy the text to the cast text // Copy the text to the cast text
char text[40]; char text[40];
memcpy(text, &Credit.pData[Credit.offset], a - Credit.offset); memcpy(text, &Credit.pData[Credit.offset], a - Credit.offset);
text[len] = 0; text[len] = 0;
//Get cast id // Get cast id
Credit.offset = a + 1; Credit.offset = a + 1;
len = GetScriptNumber(&Credit.pData[a + 1]); len = GetScriptNumber(&Credit.pData[a + 1]);
//Create cast object // Create cast object
SetStripper(Credit.start_x, (WINDOW_HEIGHT << 9) + 0x1000, text, len); SetStripper(Credit.start_x, (WINDOW_HEIGHT << 9) + 0x1000, text, len);
//Change offset // Change offset
Credit.offset += 4; Credit.offset += 4;
return; return;
case 'j': //Jump to label case 'j': // Jump to label
//Get number // Get number
b = GetScriptNumber(&Credit.pData[++Credit.offset]); b = GetScriptNumber(&Credit.pData[++Credit.offset]);
//Change offset // Change offset
Credit.offset += 4; Credit.offset += 4;
//Jump to specific label // Jump to specific label
while (Credit.offset < Credit.size) while (Credit.offset < Credit.size)
{ {
if (Credit.pData[Credit.offset] == 'l') if (Credit.pData[Credit.offset] == 'l')
{ {
//what is this // What is this
a = GetScriptNumber(&Credit.pData[++Credit.offset]); a = GetScriptNumber(&Credit.pData[++Credit.offset]);
Credit.offset += 4; Credit.offset += 4;
if (b == a) if (b == a)
@ -294,29 +294,29 @@ void ActionCredit_Read()
return; return;
case '~': //Start fading out music case '~': // Start fading out music
++Credit.offset; ++Credit.offset;
SetOrganyaFadeout(); SetOrganyaFadeout();
return; return;
case 'f': //Flag jump case 'f': // Flag jump
//Read numbers XXXX:YYYY // Read numbers XXXX:YYYY
a = GetScriptNumber(&Credit.pData[++Credit.offset]); a = GetScriptNumber(&Credit.pData[++Credit.offset]);
Credit.offset += 5; Credit.offset += 5;
b = GetScriptNumber(&Credit.pData[Credit.offset]); b = GetScriptNumber(&Credit.pData[Credit.offset]);
Credit.offset += 4; Credit.offset += 4;
//If flag is set // If flag is set
if (GetNPCFlag(a)) if (GetNPCFlag(a))
{ {
//Jump to label // Jump to label
while ( Credit.offset < Credit.size ) while (Credit.offset < Credit.size)
{ {
if (Credit.pData[Credit.offset] == 'l') if (Credit.pData[Credit.offset] == 'l')
{ {
a = GetScriptNumber(&Credit.pData[++Credit.offset]); a = GetScriptNumber(&Credit.pData[++Credit.offset]);
Credit.offset += 4; Credit.offset += 4;
if ( b == a ) if (b == a)
return; return;
} }
else if (IsShiftJIS(Credit.pData[Credit.offset])) else if (IsShiftJIS(Credit.pData[Credit.offset]))
@ -331,39 +331,39 @@ void ActionCredit_Read()
} }
return; return;
case '+': //Change casts x-position case '+': // Change casts x-position
Credit.start_x = GetScriptNumber(&Credit.pData[++Credit.offset]) << 9; Credit.start_x = GetScriptNumber(&Credit.pData[++Credit.offset]) << 9;
Credit.offset += 4; Credit.offset += 4;
return; return;
case '-': //Wait for X amount of frames case '-': // Wait for X amount of frames
Credit.wait = GetScriptNumber(&Credit.pData[++Credit.offset]); Credit.wait = GetScriptNumber(&Credit.pData[++Credit.offset]);
Credit.offset += 4; Credit.offset += 4;
Credit.mode = 2; Credit.mode = 2;
return; return;
case '/': //Stop credits case '/': // Stop credits
Credit.mode = 0; Credit.mode = 0;
return; return;
case '!': //Change music case '!': // Change music
a = GetScriptNumber(&Credit.pData[++Credit.offset]); a = GetScriptNumber(&Credit.pData[++Credit.offset]);
Credit.offset += 4; Credit.offset += 4;
ChangeMusic(a); ChangeMusic(a);
return; return;
} }
//Progress through file // Progress through file
++Credit.offset; ++Credit.offset;
} }
} }
//Update credits // Update credits
void ActionCredit() void ActionCredit()
{ {
if (Credit.offset < Credit.size) if (Credit.offset < Credit.size)
{ {
//Update script, or if waiting, decrement the wait value // Update script, or if waiting, decrement the wait value
if (Credit.mode == 1) if (Credit.mode == 1)
{ {
ActionCredit_Read(); ActionCredit_Read();
@ -375,28 +375,28 @@ void ActionCredit()
} }
} }
//Change illustration // Change illustration
void SetCreditIllust(int a) void SetCreditIllust(int a)
{ {
ReloadIllust(a); ReloadIllust(a);
Illust.act_no = 1; Illust.act_no = 1;
} }
//Slide illustration off-screen // Slide illustration off-screen
void CutCreditIllust() void CutCreditIllust()
{ {
Illust.act_no = 2; Illust.act_no = 2;
} }
//Scene of the island falling // Scene of the island falling
int Scene_DownIsland(int mode) int Scene_DownIsland(int mode)
{ {
//Setup background // Setup background
RECT rc_frame = {(WINDOW_WIDTH - 160) / 2, (WINDOW_HEIGHT - 80) / 2, (WINDOW_WIDTH + 160) / 2, (WINDOW_HEIGHT + 80) / 2}; RECT rc_frame = {(WINDOW_WIDTH - 160) / 2, (WINDOW_HEIGHT - 80) / 2, (WINDOW_WIDTH + 160) / 2, (WINDOW_HEIGHT + 80) / 2};
RECT rc_sky = {0, 0, 160, 80}; RECT rc_sky = {0, 0, 160, 80};
RECT rc_ground = {160, 48, 320, 80}; RECT rc_ground = {160, 48, 320, 80};
//Setup island // Setup island
RECT rc_sprite = {160, 0, 200, 24}; RECT rc_sprite = {160, 0, 200, 24};
ISLAND_SPRITE sprite; ISLAND_SPRITE sprite;
@ -405,10 +405,10 @@ int Scene_DownIsland(int mode)
for (int wait = 0; wait < 900; wait++) for (int wait = 0; wait < 900; wait++)
{ {
//Get pressed keys // Get pressed keys
GetTrg(); GetTrg();
//Escape menu // Escape menu
if (gKey & 0x8000) if (gKey & 0x8000)
{ {
int escRet = Call_Escape(); int escRet = Call_Escape();
@ -421,7 +421,7 @@ int Scene_DownIsland(int mode)
switch (mode) switch (mode)
{ {
case 0: case 0:
//Move down // Move down
sprite.y += 0x33; sprite.y += 0x33;
break; break;
@ -432,38 +432,38 @@ int Scene_DownIsland(int mode)
{ {
if (wait >= 600) if (wait >= 600)
{ {
//End scene // End scene
if (wait == 750) if (wait == 750)
wait = 900; wait = 900;
} }
else else
{ {
//Move down slow // Move down slow
sprite.y += 0xC; sprite.y += 0xC;
} }
} }
else else
{ {
//Move down slower // Move down slower
sprite.y += 0x19; sprite.y += 0x19;
} }
} }
else else
{ {
//Move down at normal speed // Move down at normal speed
sprite.y += 0x33; sprite.y += 0x33;
} }
break; break;
} }
//Draw scene // Draw scene
CortBox(&grcFull, 0); CortBox(&grcFull, 0);
PutBitmap3(&rc_frame, 80 + (WINDOW_WIDTH - 320) / 2, 80 + (WINDOW_HEIGHT - 240) / 2, &rc_sky, SURFACE_ID_LEVEL_SPRITESET_1); PutBitmap3(&rc_frame, 80 + (WINDOW_WIDTH - 320) / 2, 80 + (WINDOW_HEIGHT - 240) / 2, &rc_sky, SURFACE_ID_LEVEL_SPRITESET_1);
PutBitmap3(&rc_frame, sprite.x / 0x200 - 20 + (WINDOW_WIDTH - 320) / 2, sprite.y / 512 - 12 + (WINDOW_HEIGHT - 240) / 2, &rc_sprite, SURFACE_ID_LEVEL_SPRITESET_1); PutBitmap3(&rc_frame, sprite.x / 0x200 - 20 + (WINDOW_WIDTH - 320) / 2, sprite.y / 512 - 12 + (WINDOW_HEIGHT - 240) / 2, &rc_sprite, SURFACE_ID_LEVEL_SPRITESET_1);
PutBitmap3(&rc_frame, 80 + (WINDOW_WIDTH - 320) / 2, 128 + (WINDOW_HEIGHT - 240) / 2, &rc_ground, SURFACE_ID_LEVEL_SPRITESET_1); PutBitmap3(&rc_frame, 80 + (WINDOW_WIDTH - 320) / 2, 128 + (WINDOW_HEIGHT - 240) / 2, &rc_ground, SURFACE_ID_LEVEL_SPRITESET_1);
PutTimeCounter(16, 8); PutTimeCounter(16, 8);
//Draw window // Draw window
PutFramePerSecound(); PutFramePerSecound();
if (!Flip_SystemTask()) if (!Flip_SystemTask())
return 0; return 0;

View file

@ -33,7 +33,7 @@ struct ISLAND_SPRITE
int y; int y;
}; };
#define MAX_STRIP (WINDOW_HEIGHT / 16) + 1 #define MAX_STRIP ((WINDOW_HEIGHT / 16) + 1)
void ActionStripper(); void ActionStripper();
void PutStripper(); void PutStripper();

View file

@ -13,33 +13,33 @@ int Call_Escape()
while (1) while (1)
{ {
//Get pressed keys // Get pressed keys
GetTrg(); GetTrg();
if (gKeyTrg & KEY_ESCAPE) //Escape is pressed, quit game if (gKeyTrg & KEY_ESCAPE) // Escape is pressed, quit game
{ {
gKeyTrg = 0; gKeyTrg = 0;
return 0; return 0;
} }
if (gKeyTrg & KEY_F1) //F1 is pressed, continue if (gKeyTrg & KEY_F1) // F1 is pressed, continue
{ {
gKeyTrg = 0; gKeyTrg = 0;
return 1; return 1;
} }
if (gKeyTrg & KEY_F2) //F2 is pressed, reset if (gKeyTrg & KEY_F2) // F2 is pressed, reset
{ {
gKeyTrg = 0; gKeyTrg = 0;
return 2; return 2;
} }
//Draw screen // Draw screen
CortBox(&grcFull, 0x000000); CortBox(&grcFull, 0x000000);
PutBitmap3(&grcFull, (WINDOW_WIDTH - 208) / 2, (WINDOW_HEIGHT - 16) / 2, &rc, SURFACE_ID_TEXT_BOX); PutBitmap3(&grcFull, (WINDOW_WIDTH - 208) / 2, (WINDOW_HEIGHT - 16) / 2, &rc, SURFACE_ID_TEXT_BOX);
PutFramePerSecound(); PutFramePerSecound();
if (!Flip_SystemTask()) if (!Flip_SystemTask())
{ {
//Quit if window is closed // Quit if window is closed
gKeyTrg = 0; gKeyTrg = 0;
return 0; return 0;
} }