mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-13 21:31:53 +00:00
Renames structures and other cleanup
svn-id: r21626
This commit is contained in:
parent
9394430ea8
commit
935ea28e7a
@ -59,7 +59,7 @@ void SimonEngine::print_char_helper_1(const byte *src, uint len) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (*src != 12 && _textWindow->fcs_data != NULL &&
|
||||
if (*src != 12 && _textWindow->iconPtr != NULL &&
|
||||
_fcsData1[ind = get_fcs_ptr_3_index(_textWindow)] != 2) {
|
||||
|
||||
_fcsData1[ind] = 2;
|
||||
@ -71,19 +71,19 @@ void SimonEngine::print_char_helper_1(const byte *src, uint len) {
|
||||
}
|
||||
}
|
||||
|
||||
void SimonEngine::print_char_helper_5(FillOrCopyStruct *fcs) {
|
||||
uint index = get_fcs_ptr_3_index(fcs);
|
||||
void SimonEngine::print_char_helper_5(WindowBlock *window) {
|
||||
uint index = get_fcs_ptr_3_index(window);
|
||||
print_char_helper_6(index);
|
||||
_fcsData1[index] = 0;
|
||||
}
|
||||
|
||||
void SimonEngine::print_char_helper_6(uint i) {
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *window;
|
||||
|
||||
if (_fcsData2[i]) {
|
||||
mouseOff();
|
||||
fcs = _windowArray[i];
|
||||
drawIconArray(i, fcs->fcs_data->item_ptr, fcs->fcs_data->unk1, fcs->fcs_data->unk2);
|
||||
window = _windowArray[i];
|
||||
drawIconArray(i, window->iconPtr->itemRef, window->iconPtr->line, window->iconPtr->classMask);
|
||||
_fcsData2[i] = 0;
|
||||
mouseOn();
|
||||
}
|
||||
@ -346,82 +346,82 @@ void SimonEngine::showmessage_helper_3(uint a, uint b) {
|
||||
_newLines = 0;
|
||||
}
|
||||
|
||||
void SimonEngine::video_putchar(FillOrCopyStruct *fcs, byte c, byte b) {
|
||||
void SimonEngine::video_putchar(WindowBlock *window, byte c, byte b) {
|
||||
byte width = 6;
|
||||
|
||||
if (c == 12) {
|
||||
clearWindow(fcs);
|
||||
clearWindow(window);
|
||||
} else if (c == 13 || c == 10) {
|
||||
video_putchar_newline(fcs);
|
||||
video_putchar_newline(window);
|
||||
} else if ((c == 1 && _language != Common::HB_ISR) || (c == 8)) {
|
||||
if (_language == Common::HB_ISR) { //Hebrew
|
||||
if (b >= 64 && b < 91)
|
||||
width = _hebrew_char_widths [b - 64];
|
||||
|
||||
if (fcs->textLength != 0) {
|
||||
fcs->textLength--;
|
||||
fcs->textColumnOffset += width;
|
||||
if (fcs->textColumnOffset >= 8) {
|
||||
fcs->textColumnOffset -= 8;
|
||||
fcs->textColumn--;
|
||||
if (window->textLength != 0) {
|
||||
window->textLength--;
|
||||
window->textColumnOffset += width;
|
||||
if (window->textColumnOffset >= 8) {
|
||||
window->textColumnOffset -= 8;
|
||||
window->textColumn--;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
int8 val = (c == 8) ? 6 : 4;
|
||||
|
||||
if (fcs->textLength != 0) {
|
||||
fcs->textLength--;
|
||||
fcs->textColumnOffset -= val;
|
||||
if ((int8)fcs->textColumnOffset < val) {
|
||||
fcs->textColumnOffset += 8;
|
||||
fcs->textColumn--;
|
||||
if (window->textLength != 0) {
|
||||
window->textLength--;
|
||||
window->textColumnOffset -= val;
|
||||
if ((int8)window->textColumnOffset < val) {
|
||||
window->textColumnOffset += 8;
|
||||
window->textColumn--;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (c >= 32) {
|
||||
if (getGameType() == GType_FF) {
|
||||
video_putchar_drawchar(fcs, fcs->textColumn + fcs->x, fcs->textRow + fcs->y, c);
|
||||
fcs->textColumn += feebleFontSize[c - 32];
|
||||
video_putchar_drawchar(window, window->textColumn + window->x, window->textRow + window->y, c);
|
||||
window->textColumn += feebleFontSize[c - 32];
|
||||
return;
|
||||
}
|
||||
|
||||
if (fcs->textLength == fcs->textMaxLength) {
|
||||
video_putchar_newline(fcs);
|
||||
} else if (fcs->textRow == fcs->height) {
|
||||
video_putchar_newline(fcs);
|
||||
fcs->textRow--;
|
||||
if (window->textLength == window->textMaxLength) {
|
||||
video_putchar_newline(window);
|
||||
} else if (window->textRow == window->height) {
|
||||
video_putchar_newline(window);
|
||||
window->textRow--;
|
||||
}
|
||||
|
||||
if (_language == Common::HB_ISR) { //Hebrew
|
||||
if (c >= 64 && c < 91)
|
||||
width = _hebrew_char_widths [c - 64];
|
||||
fcs->textColumnOffset -= width;
|
||||
if (fcs->textColumnOffset >= width) {
|
||||
fcs->textColumn++;
|
||||
fcs->textColumnOffset += 8;
|
||||
window->textColumnOffset -= width;
|
||||
if (window->textColumnOffset >= width) {
|
||||
window->textColumn++;
|
||||
window->textColumnOffset += 8;
|
||||
}
|
||||
video_putchar_drawchar(fcs, (fcs->width + fcs->x - fcs->textColumn) * 8, fcs->textRow * 8 + fcs->y, c);
|
||||
fcs->textLength++;
|
||||
video_putchar_drawchar(window, (window->width + window->x - window->textColumn) * 8, window->textRow * 8 + window->y, c);
|
||||
window->textLength++;
|
||||
} else {
|
||||
video_putchar_drawchar(fcs, (fcs->textColumn + fcs->x) * 8, fcs->textRow * 8 + fcs->y, c);
|
||||
video_putchar_drawchar(window, (window->textColumn + window->x) * 8, window->textRow * 8 + window->y, c);
|
||||
|
||||
fcs->textLength++;
|
||||
fcs->textColumnOffset += 6;
|
||||
window->textLength++;
|
||||
window->textColumnOffset += 6;
|
||||
if (c == 'i' || c == 'l')
|
||||
fcs->textColumnOffset -= 2;
|
||||
window->textColumnOffset -= 2;
|
||||
|
||||
if (fcs->textColumnOffset >= 8) {
|
||||
fcs->textColumnOffset -= 8;
|
||||
fcs->textColumn++;
|
||||
if (window->textColumnOffset >= 8) {
|
||||
window->textColumnOffset -= 8;
|
||||
window->textColumn++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SimonEngine::video_putchar_newline(FillOrCopyStruct *fcs) {
|
||||
void SimonEngine::video_putchar_newline(WindowBlock *window) {
|
||||
if (getGameType() == GType_FF) {
|
||||
if (_noOracleScroll == 0) {
|
||||
if (fcs->textRow + 30 > fcs->height) {
|
||||
if (window->textRow + 30 > window->height) {
|
||||
if (getBitFlag(94) == false) {
|
||||
_noOracleScroll = 1;
|
||||
if (getBitFlag(92) == true) {
|
||||
@ -429,7 +429,7 @@ void SimonEngine::video_putchar_newline(FillOrCopyStruct *fcs) {
|
||||
checkLinkBox();
|
||||
scrollOracle();
|
||||
linksUp();
|
||||
fcs->scrollY++;
|
||||
window->scrollY++;
|
||||
_oracleMaxScrollY++;
|
||||
} else {
|
||||
_oracleMaxScrollY++;
|
||||
@ -437,7 +437,7 @@ void SimonEngine::video_putchar_newline(FillOrCopyStruct *fcs) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fcs->textRow += 15;
|
||||
window->textRow += 15;
|
||||
checkLinkBox();
|
||||
}
|
||||
} else {
|
||||
@ -445,13 +445,13 @@ void SimonEngine::video_putchar_newline(FillOrCopyStruct *fcs) {
|
||||
checkLinkBox();
|
||||
}
|
||||
} else {
|
||||
if (fcs->textRow != fcs->height)
|
||||
fcs->textRow++;
|
||||
if (window->textRow != window->height)
|
||||
window->textRow++;
|
||||
}
|
||||
|
||||
fcs->textColumnOffset = 0;
|
||||
fcs->textLength = 0;
|
||||
fcs->textColumn = 0;
|
||||
window->textColumnOffset = 0;
|
||||
window->textLength = 0;
|
||||
window->textColumn = 0;
|
||||
}
|
||||
|
||||
#ifdef PALMOS_68K
|
||||
@ -1273,7 +1273,7 @@ static const byte video_font[] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
void SimonEngine::video_putchar_drawchar(FillOrCopyStruct *fcs, uint x, uint y, byte chr) {
|
||||
void SimonEngine::video_putchar_drawchar(WindowBlock *window, uint x, uint y, byte chr) {
|
||||
const byte *src;
|
||||
byte color, *dst;
|
||||
uint h, i;
|
||||
@ -1281,7 +1281,7 @@ void SimonEngine::video_putchar_drawchar(FillOrCopyStruct *fcs, uint x, uint y,
|
||||
_lockWord |= 0x8000;
|
||||
|
||||
dst = getFrontBuf();
|
||||
dst += y * _dxSurfacePitch + x + fcs->textColumnOffset;
|
||||
dst += y * _dxSurfacePitch + x + window->textColumnOffset;
|
||||
|
||||
switch(_language) {
|
||||
case Common::RU_RUS:
|
||||
@ -1312,7 +1312,7 @@ void SimonEngine::video_putchar_drawchar(FillOrCopyStruct *fcs, uint x, uint y,
|
||||
error("video_putchar_drawchar: Unknown language %d\n", _language);
|
||||
}
|
||||
|
||||
color = fcs->text_color;
|
||||
color = window->text_color;
|
||||
|
||||
h = 8;
|
||||
do {
|
||||
|
@ -73,7 +73,7 @@ void SimonEngine::loadIconData() {
|
||||
|
||||
// Thanks to Stuart Caie for providing the original
|
||||
// C conversion upon which this function is based.
|
||||
void decompress_icon_amiga (byte *dst, byte *src, byte base, uint pitch) {
|
||||
void decompressIconAmiga (byte *dst, byte *src, byte base, uint pitch) {
|
||||
byte icon_pln[288];
|
||||
byte *i, *o, x, y;
|
||||
|
||||
@ -114,7 +114,7 @@ void decompress_icon_amiga (byte *dst, byte *src, byte base, uint pitch) {
|
||||
}
|
||||
}
|
||||
|
||||
static void decompress_icon(byte *dst, byte *src, uint w, uint h_org, byte base, uint pitch) {
|
||||
static void decompressIcon(byte *dst, byte *src, uint w, uint h_org, byte base, uint pitch) {
|
||||
int8 reps;
|
||||
byte color_1, color_2;
|
||||
byte *dst_org = dst;
|
||||
@ -174,71 +174,71 @@ static void decompress_icon(byte *dst, byte *src, uint w, uint h_org, byte base,
|
||||
}
|
||||
|
||||
|
||||
void SimonEngine::draw_icon_c(FillOrCopyStruct *fcs, uint icon, uint x, uint y) {
|
||||
void SimonEngine::draw_icon_c(WindowBlock *window, uint icon, uint x, uint y) {
|
||||
byte *dst;
|
||||
byte *src;
|
||||
|
||||
_lockWord |= 0x8000;
|
||||
dst = getFrontBuf();
|
||||
|
||||
if (!(getGameType() == GType_SIMON2)) {
|
||||
if (getGameType() == GType_SIMON1) {
|
||||
// Simon 1
|
||||
dst += (x + fcs->x) * 8;
|
||||
dst += (y * 25 + fcs->y) * _dxSurfacePitch;
|
||||
dst += (x + window->x) * 8;
|
||||
dst += (y * 25 + window->y) * _dxSurfacePitch;
|
||||
|
||||
if (getPlatform() == Common::kPlatformAmiga) {
|
||||
src = _iconFilePtr;
|
||||
src += READ_BE_UINT32(&((uint32 *)src)[icon]);
|
||||
decompress_icon_amiga (dst, src, 0xE0, _dxSurfacePitch);
|
||||
decompressIconAmiga (dst, src, 224, _dxSurfacePitch);
|
||||
} else {
|
||||
src = _iconFilePtr;
|
||||
src += READ_LE_UINT16(&((uint16 *)src)[icon]);
|
||||
decompress_icon(dst, src, 24, 12, 0xE0, _dxSurfacePitch);
|
||||
decompressIcon(dst, src, 24, 12, 224, _dxSurfacePitch);
|
||||
}
|
||||
} else {
|
||||
// Simon 2
|
||||
dst += 110;
|
||||
dst += x;
|
||||
dst += (y + fcs->y) * _dxSurfacePitch;
|
||||
dst += (y + window->y) * _dxSurfacePitch;
|
||||
|
||||
src = _iconFilePtr;
|
||||
src += READ_LE_UINT16(&((uint16 *)src)[icon * 2 + 0]);
|
||||
decompress_icon(dst, src, 20, 10, 0xE0, _dxSurfacePitch);
|
||||
decompressIcon(dst, src, 20, 10, 224, _dxSurfacePitch);
|
||||
|
||||
src = _iconFilePtr;
|
||||
src += READ_LE_UINT16(&((uint16 *)src)[icon * 2 + 1]);
|
||||
decompress_icon(dst, src, 20, 10, 0xD0, _dxSurfacePitch);
|
||||
decompressIcon(dst, src, 20, 10, 208, _dxSurfacePitch);
|
||||
}
|
||||
|
||||
_lockWord &= ~0x8000;
|
||||
}
|
||||
|
||||
uint SimonEngine::setup_icon_hit_area(FillOrCopyStruct *fcs, uint x, uint y, uint icon_number,
|
||||
uint SimonEngine::setup_icon_hit_area(WindowBlock *window, uint x, uint y, uint icon_number,
|
||||
Item *item_ptr) {
|
||||
HitArea *ha;
|
||||
|
||||
ha = findEmptyHitArea();
|
||||
|
||||
if (!(getGameType() == GType_SIMON2)) {
|
||||
ha->x = (x + fcs->x) << 3;
|
||||
ha->y = y * 25 + fcs->y;
|
||||
if (getGameType() == GType_SIMON1) {
|
||||
ha->x = (x + window->x) * 8;
|
||||
ha->y = y * 25 + window->y;
|
||||
ha->item_ptr = item_ptr;
|
||||
ha->width = 24;
|
||||
ha->height = 24;
|
||||
ha->flags = 0xB0;
|
||||
ha->id = 0x7FFD;
|
||||
ha->priority = 100;
|
||||
ha->verb = 0xD0;
|
||||
ha->verb = 208;
|
||||
} else {
|
||||
ha->x = x + 110;
|
||||
ha->y = fcs->y + y;
|
||||
ha->y = window->y + y;
|
||||
ha->item_ptr = item_ptr;
|
||||
ha->width = 20;
|
||||
ha->height = 20;
|
||||
ha->flags = 0xB0;
|
||||
ha->id = 0x7FFD;
|
||||
ha->priority = 100;
|
||||
ha->verb = 0xD0;
|
||||
ha->verb = 208;
|
||||
}
|
||||
|
||||
return ha - _hitAreas;
|
||||
|
@ -70,21 +70,20 @@ struct Subroutine {
|
||||
Subroutine *next; /* next subroutine in linked list */
|
||||
};
|
||||
|
||||
struct FillOrCopyDataEntry {
|
||||
struct IconEntry {
|
||||
Item *item;
|
||||
uint16 hit_area;
|
||||
uint16 xxx_1;
|
||||
uint16 boxCode;
|
||||
};
|
||||
|
||||
struct FillOrCopyData {
|
||||
int16 unk1;
|
||||
Item *item_ptr;
|
||||
FillOrCopyDataEntry e[64];
|
||||
struct IconBlock {
|
||||
int16 line;
|
||||
Item *itemRef;
|
||||
IconEntry iconArray[64];
|
||||
int16 upArrow, downArrow;
|
||||
uint16 unk2;
|
||||
uint16 classMask;
|
||||
};
|
||||
|
||||
struct FillOrCopyStruct {
|
||||
struct WindowBlock {
|
||||
byte mode;
|
||||
byte flags;
|
||||
uint16 x, y;
|
||||
@ -92,9 +91,9 @@ struct FillOrCopyStruct {
|
||||
uint16 textColumn, textRow;
|
||||
uint16 textColumnOffset, textLength, textMaxLength;
|
||||
uint16 scrollY;
|
||||
uint8 fill_color, text_color, unk5;
|
||||
FillOrCopyData *fcs_data;
|
||||
FillOrCopyStruct() { memset(this, 0, sizeof(*this)); }
|
||||
uint8 fill_color, text_color;
|
||||
IconBlock *iconPtr;
|
||||
WindowBlock() { memset(this, 0, sizeof(*this)); }
|
||||
};
|
||||
// note on text offset:
|
||||
// the actual x-coordinate is: textColumn * 8 + textColumnOffset
|
||||
|
@ -1505,12 +1505,12 @@ void SimonEngine::o_confirmQuit() {
|
||||
}
|
||||
|
||||
void SimonEngine::o_restoreIconArray(uint fcs_index) {
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *window;
|
||||
|
||||
fcs = _windowArray[fcs_index & 7];
|
||||
if (fcs->fcs_data == NULL)
|
||||
window = _windowArray[fcs_index & 7];
|
||||
if (window->iconPtr == NULL)
|
||||
return;
|
||||
drawIconArray(fcs_index, fcs->fcs_data->item_ptr, fcs->fcs_data->unk1, fcs->fcs_data->unk2);
|
||||
drawIconArray(fcs_index, window->iconPtr->itemRef, window->iconPtr->line, window->iconPtr->classMask);
|
||||
}
|
||||
|
||||
void SimonEngine::o_freezeBottom() {
|
||||
@ -1598,12 +1598,12 @@ void SimonEngine::o_unk_132_helper_3() {
|
||||
set_hitarea_bit_0x40(i);
|
||||
}
|
||||
|
||||
void SimonEngine::o_clearCharacter(FillOrCopyStruct *fcs, int x, byte b) {
|
||||
void SimonEngine::o_clearCharacter(WindowBlock *window, int x, byte b) {
|
||||
byte old_text;
|
||||
|
||||
video_putchar(fcs, x, b);
|
||||
old_text = fcs->text_color;
|
||||
fcs->text_color = fcs->fill_color;
|
||||
video_putchar(window, x, b);
|
||||
old_text = window->text_color;
|
||||
window->text_color = window->fill_color;
|
||||
|
||||
if (_language == Common::HB_ISR) { //Hebrew
|
||||
x = 128;
|
||||
@ -1614,10 +1614,10 @@ void SimonEngine::o_clearCharacter(FillOrCopyStruct *fcs, int x, byte b) {
|
||||
|
||||
}
|
||||
|
||||
video_putchar(fcs, x);
|
||||
video_putchar(window, x);
|
||||
|
||||
fcs->text_color = old_text;
|
||||
video_putchar(fcs, 8);
|
||||
window->text_color = old_text;
|
||||
video_putchar(window, 8);
|
||||
}
|
||||
|
||||
void SimonEngine::o_playMusic() {
|
||||
@ -1665,10 +1665,10 @@ void SimonEngine::o_playSFX(uint sound_id) {
|
||||
}
|
||||
|
||||
void SimonEngine::o_setTextColor(uint color) {
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *window;
|
||||
|
||||
fcs = _windowArray[_curWindow];
|
||||
fcs->text_color = color;
|
||||
window = _windowArray[_curWindow];
|
||||
window->text_color = color;
|
||||
}
|
||||
|
||||
void SimonEngine::o_unk_103() {
|
||||
|
@ -13,8 +13,8 @@ MODULE_OBJS := \
|
||||
oracle.o \
|
||||
res.o \
|
||||
saveload.o \
|
||||
sound.o \
|
||||
simon.o \
|
||||
sound.o \
|
||||
verb.o \
|
||||
vga.o \
|
||||
|
||||
|
@ -180,7 +180,7 @@ void SimonEngine::saveOrLoadDialog(bool load) {
|
||||
int number_of_savegames;
|
||||
int i;
|
||||
int unk132_result;
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *fcs;
|
||||
char *name;
|
||||
int name_len;
|
||||
bool b;
|
||||
@ -350,7 +350,7 @@ get_out:;
|
||||
g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
|
||||
}
|
||||
|
||||
void SimonEngine::o_fileError(FillOrCopyStruct *fcs, bool save_error) {
|
||||
void SimonEngine::o_fileError(WindowBlock *fcs, bool save_error) {
|
||||
HitArea *ha;
|
||||
const char *string, *string2;
|
||||
|
||||
|
@ -417,7 +417,7 @@ SimonEngine::SimonEngine(OSystem *syst)
|
||||
|
||||
memset(_videoBuf1, 0, sizeof(_videoBuf1));
|
||||
|
||||
_fcs_list = new FillOrCopyStruct[16];
|
||||
_fcs_list = new WindowBlock[16];
|
||||
|
||||
memset(_lettersToPrintBuf, 0, sizeof(_lettersToPrintBuf));
|
||||
|
||||
@ -1083,7 +1083,7 @@ void SimonEngine::setItemParent(Item *item, Item *parent) {
|
||||
|
||||
void SimonEngine::itemChildrenChanged(Item *item) {
|
||||
int i;
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *window;
|
||||
|
||||
if (_noParentNotify)
|
||||
return;
|
||||
@ -1091,13 +1091,13 @@ void SimonEngine::itemChildrenChanged(Item *item) {
|
||||
mouseOff();
|
||||
|
||||
for (i = 0; i != 8; i++) {
|
||||
fcs = _windowArray[i];
|
||||
if (fcs && fcs->fcs_data && fcs->fcs_data->item_ptr == item) {
|
||||
window = _windowArray[i];
|
||||
if (window && window->iconPtr && window->iconPtr->itemRef == item) {
|
||||
if (_fcsData1[i]) {
|
||||
_fcsData2[i] = true;
|
||||
} else {
|
||||
_fcsData2[i] = false;
|
||||
drawIconArray(i, item, fcs->fcs_data->unk1, fcs->fcs_data->unk2);
|
||||
drawIconArray(i, item, window->iconPtr->line, window->iconPtr->classMask);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1624,9 +1624,9 @@ void SimonEngine::setup_cond_c_helper() {
|
||||
|
||||
if (_lastHitArea == NULL) {
|
||||
} else if (_lastHitArea->id == 0x7FFB) {
|
||||
inventoryUp(_lastHitArea->fcs);
|
||||
inventoryUp(_lastHitArea->window);
|
||||
} else if (_lastHitArea->id == 0x7FFC) {
|
||||
inventoryDown(_lastHitArea->fcs);
|
||||
inventoryDown(_lastHitArea->window);
|
||||
} else if (_lastHitArea->item_ptr != NULL) {
|
||||
_hitAreaObjectItem = _lastHitArea->item_ptr;
|
||||
_variableArray[60] = (_lastHitArea->flags & 1) ? (_lastHitArea->flags / 256) : 0xFFFF;
|
||||
@ -1654,11 +1654,11 @@ void SimonEngine::endCutscene() {
|
||||
_runScriptReturn1 = true;
|
||||
}
|
||||
|
||||
uint SimonEngine::get_fcs_ptr_3_index(FillOrCopyStruct *fcs) {
|
||||
uint SimonEngine::get_fcs_ptr_3_index(WindowBlock *window) {
|
||||
uint i;
|
||||
|
||||
for (i = 0; i != ARRAYSIZE(_windowArray); i++)
|
||||
if (_windowArray[i] == fcs)
|
||||
if (_windowArray[i] == window)
|
||||
return i;
|
||||
|
||||
error("get_fcs_ptr_3_index: not found");
|
||||
@ -1776,9 +1776,9 @@ get_out:
|
||||
_needHitAreaRecalc = 0;
|
||||
}
|
||||
|
||||
void SimonEngine::drawIconArray(uint fcs_index, Item *item_ptr, int unk1, int unk2) {
|
||||
Item *item_ptr_org = item_ptr;
|
||||
FillOrCopyStruct *fcs_ptr;
|
||||
void SimonEngine::drawIconArray(uint fcs_index, Item *itemRef, int line, int classMask) {
|
||||
Item *item_ptr_org = itemRef;
|
||||
WindowBlock *fcs_ptr;
|
||||
uint width_div_3, height_div_3;
|
||||
uint j, k, i, num_sibs_with_flag;
|
||||
bool item_again;
|
||||
@ -1799,34 +1799,34 @@ void SimonEngine::drawIconArray(uint fcs_index, Item *item_ptr, int unk1, int un
|
||||
if (fcs_ptr == NULL)
|
||||
return;
|
||||
|
||||
if (fcs_ptr->fcs_data)
|
||||
if (fcs_ptr->iconPtr)
|
||||
removeIconArray(fcs_index);
|
||||
|
||||
fcs_ptr->fcs_data = (FillOrCopyData *) malloc(sizeof(FillOrCopyData));
|
||||
fcs_ptr->fcs_data->item_ptr = item_ptr;
|
||||
fcs_ptr->fcs_data->upArrow = -1;
|
||||
fcs_ptr->fcs_data->downArrow = -1;
|
||||
fcs_ptr->fcs_data->unk1 = unk1;
|
||||
fcs_ptr->fcs_data->unk2 = unk2;
|
||||
fcs_ptr->iconPtr = (IconBlock *) malloc(sizeof(IconBlock));
|
||||
fcs_ptr->iconPtr->itemRef = itemRef;
|
||||
fcs_ptr->iconPtr->upArrow = -1;
|
||||
fcs_ptr->iconPtr->downArrow = -1;
|
||||
fcs_ptr->iconPtr->line = line;
|
||||
fcs_ptr->iconPtr->classMask = classMask;
|
||||
|
||||
item_ptr = derefItem(item_ptr->child);
|
||||
itemRef = derefItem(itemRef->child);
|
||||
|
||||
while (item_ptr && unk1-- != 0) {
|
||||
while (itemRef && line-- != 0) {
|
||||
num_sibs_with_flag = 0;
|
||||
while (item_ptr && width_div_3 > num_sibs_with_flag) {
|
||||
if ((unk2 == 0 || item_ptr->classFlags & unk2) && has_item_childflag_0x10(item_ptr))
|
||||
while (itemRef && width_div_3 > num_sibs_with_flag) {
|
||||
if ((classMask == 0 || itemRef->classFlags & classMask) && has_item_childflag_0x10(itemRef))
|
||||
if (getGameType() == GType_SIMON1) {
|
||||
num_sibs_with_flag++;
|
||||
} else {
|
||||
num_sibs_with_flag += 20;
|
||||
}
|
||||
item_ptr = derefItem(item_ptr->sibling);
|
||||
itemRef = derefItem(itemRef->sibling);
|
||||
}
|
||||
}
|
||||
|
||||
if (item_ptr == NULL) {
|
||||
fcs_ptr->fcs_data->unk1 = 0;
|
||||
item_ptr = derefItem(item_ptr_org->child);
|
||||
if (itemRef == NULL) {
|
||||
fcs_ptr->iconPtr->line = 0;
|
||||
itemRef = derefItem(item_ptr_org->child);
|
||||
}
|
||||
|
||||
x_pos = 0;
|
||||
@ -1835,23 +1835,23 @@ void SimonEngine::drawIconArray(uint fcs_index, Item *item_ptr, int unk1, int un
|
||||
k = 0;
|
||||
j = 0;
|
||||
|
||||
while (item_ptr) {
|
||||
if ((unk2 == 0 || item_ptr->classFlags & unk2) && has_item_childflag_0x10(item_ptr)) {
|
||||
while (itemRef) {
|
||||
if ((classMask == 0 || itemRef->classFlags & classMask) && has_item_childflag_0x10(itemRef)) {
|
||||
if (item_again == false) {
|
||||
fcs_ptr->fcs_data->e[k].item = item_ptr;
|
||||
fcs_ptr->iconPtr->iconArray[k].item = itemRef;
|
||||
if (getGameType() == GType_SIMON1) {
|
||||
draw_icon_c(fcs_ptr, item_get_icon_number(item_ptr), x_pos * 3, y_pos);
|
||||
fcs_ptr->fcs_data->e[k].hit_area =
|
||||
draw_icon_c(fcs_ptr, item_get_icon_number(itemRef), x_pos * 3, y_pos);
|
||||
fcs_ptr->iconPtr->iconArray[k].boxCode =
|
||||
setup_icon_hit_area(fcs_ptr, x_pos * 3, y_pos,
|
||||
item_get_icon_number(item_ptr), item_ptr);
|
||||
item_get_icon_number(itemRef), itemRef);
|
||||
} else {
|
||||
draw_icon_c(fcs_ptr, item_get_icon_number(item_ptr), x_pos, y_pos);
|
||||
fcs_ptr->fcs_data->e[k].hit_area =
|
||||
setup_icon_hit_area(fcs_ptr, x_pos, y_pos, item_get_icon_number(item_ptr), item_ptr);
|
||||
draw_icon_c(fcs_ptr, item_get_icon_number(itemRef), x_pos, y_pos);
|
||||
fcs_ptr->iconPtr->iconArray[k].boxCode =
|
||||
setup_icon_hit_area(fcs_ptr, x_pos, y_pos, item_get_icon_number(itemRef), itemRef);
|
||||
}
|
||||
k++;
|
||||
} else {
|
||||
fcs_ptr->fcs_data->e[k].item = NULL;
|
||||
fcs_ptr->iconPtr->iconArray[k].item = NULL;
|
||||
j = 1;
|
||||
}
|
||||
x_pos += (getGameType() == GType_SIMON1) ? 1 : 20;
|
||||
@ -1864,24 +1864,24 @@ void SimonEngine::drawIconArray(uint fcs_index, Item *item_ptr, int unk1, int un
|
||||
item_again = true;
|
||||
}
|
||||
}
|
||||
item_ptr = derefItem(item_ptr->sibling);
|
||||
itemRef = derefItem(itemRef->sibling);
|
||||
}
|
||||
|
||||
fcs_ptr->fcs_data->e[k].item = NULL;
|
||||
fcs_ptr->iconPtr->iconArray[k].item = NULL;
|
||||
|
||||
if (j != 0 || fcs_ptr->fcs_data->unk1 != 0) {
|
||||
if (j != 0 || fcs_ptr->iconPtr->line != 0) {
|
||||
addArrows(fcs_ptr, fcs_index);
|
||||
}
|
||||
}
|
||||
|
||||
void SimonEngine::addArrows(FillOrCopyStruct *fcs, uint fcs_index) {
|
||||
setArrowHitAreas(fcs, fcs_index);
|
||||
void SimonEngine::addArrows(WindowBlock *window, uint fcs_index) {
|
||||
setArrowHitAreas(window, fcs_index);
|
||||
|
||||
fcs->fcs_data->upArrow = _scrollUpHitArea;
|
||||
fcs->fcs_data->downArrow = _scrollDownHitArea;
|
||||
window->iconPtr->upArrow = _scrollUpHitArea;
|
||||
window->iconPtr->downArrow = _scrollDownHitArea;
|
||||
}
|
||||
|
||||
void SimonEngine::setArrowHitAreas(FillOrCopyStruct *fcs, uint fcs_index) {
|
||||
void SimonEngine::setArrowHitAreas(WindowBlock *window, uint fcs_index) {
|
||||
HitArea *ha;
|
||||
|
||||
ha = findEmptyHitArea();
|
||||
@ -1894,7 +1894,7 @@ void SimonEngine::setArrowHitAreas(FillOrCopyStruct *fcs, uint fcs_index) {
|
||||
ha->flags = 0x24;
|
||||
ha->id = 0x7FFB;
|
||||
ha->priority = 100;
|
||||
ha->fcs = fcs;
|
||||
ha->window = window;
|
||||
ha->verb = 1;
|
||||
} else {
|
||||
ha->x = 81;
|
||||
@ -1904,7 +1904,7 @@ void SimonEngine::setArrowHitAreas(FillOrCopyStruct *fcs, uint fcs_index) {
|
||||
ha->flags = 36;
|
||||
ha->id = 0x7FFB;
|
||||
ha->priority = 100;
|
||||
ha->fcs = fcs;
|
||||
ha->window = window;
|
||||
ha->verb = 1;
|
||||
}
|
||||
|
||||
@ -1919,7 +1919,7 @@ void SimonEngine::setArrowHitAreas(FillOrCopyStruct *fcs, uint fcs_index) {
|
||||
ha->flags = 0x24;
|
||||
ha->id = 0x7FFC;
|
||||
ha->priority = 100;
|
||||
ha->fcs = fcs;
|
||||
ha->window = window;
|
||||
ha->verb = 1;
|
||||
|
||||
// Simon1 specific
|
||||
@ -1933,7 +1933,7 @@ void SimonEngine::setArrowHitAreas(FillOrCopyStruct *fcs, uint fcs_index) {
|
||||
ha->flags = 36;
|
||||
ha->id = 0x7FFC;
|
||||
ha->priority = 100;
|
||||
ha->fcs = fcs;
|
||||
ha->window = window;
|
||||
ha->verb = 1;
|
||||
}
|
||||
}
|
||||
@ -2086,9 +2086,9 @@ startOver:
|
||||
|
||||
if (ha == NULL) {
|
||||
} else if (ha->id == 0x7FFB) {
|
||||
inventoryUp(ha->fcs);
|
||||
inventoryUp(ha->window);
|
||||
} else if (ha->id == 0x7FFC) {
|
||||
inventoryDown(ha->fcs);
|
||||
inventoryDown(ha->window);
|
||||
} else if (ha->id >= 101 && ha->id < 113) {
|
||||
_verbHitArea = ha->verb;
|
||||
setVerb(ha);
|
||||
@ -3023,27 +3023,27 @@ void SimonEngine::changeWindow(uint a) {
|
||||
}
|
||||
|
||||
// OK
|
||||
FillOrCopyStruct *SimonEngine::openWindow(uint x, uint y, uint w, uint h, uint flags, uint fill_color, uint text_color) {
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *SimonEngine::openWindow(uint x, uint y, uint w, uint h, uint flags, uint fill_color, uint text_color) {
|
||||
WindowBlock *window;
|
||||
|
||||
fcs = _fcs_list;
|
||||
while (fcs->mode != 0)
|
||||
fcs++;
|
||||
window = _fcs_list;
|
||||
while (window->mode != 0)
|
||||
window++;
|
||||
|
||||
fcs->mode = 2;
|
||||
fcs->x = x;
|
||||
fcs->y = y;
|
||||
fcs->width = w;
|
||||
fcs->height = h;
|
||||
fcs->flags = flags;
|
||||
fcs->fill_color = fill_color;
|
||||
fcs->text_color = text_color;
|
||||
fcs->textColumn = 0;
|
||||
fcs->textRow = 0;
|
||||
fcs->textColumnOffset = 0;
|
||||
fcs->textMaxLength = fcs->width * 8 / 6; // characters are 6 pixels
|
||||
fcs->scrollY = 0;
|
||||
return fcs;
|
||||
window->mode = 2;
|
||||
window->x = x;
|
||||
window->y = y;
|
||||
window->width = w;
|
||||
window->height = h;
|
||||
window->flags = flags;
|
||||
window->fill_color = fill_color;
|
||||
window->text_color = text_color;
|
||||
window->textColumn = 0;
|
||||
window->textRow = 0;
|
||||
window->textColumnOffset = 0;
|
||||
window->textMaxLength = window->width * 8 / 6; // characters are 6 pixels
|
||||
window->scrollY = 0;
|
||||
return window;
|
||||
}
|
||||
|
||||
Item *SimonEngine::derefItem(uint item) {
|
||||
@ -3102,43 +3102,43 @@ void SimonEngine::o_pathfind(int x, int y, uint var_1, uint var_2) {
|
||||
|
||||
// ok
|
||||
void SimonEngine::removeIconArray(uint fcs_index) {
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *window;
|
||||
uint16 fcsunk1;
|
||||
uint16 i;
|
||||
|
||||
fcs = _windowArray[fcs_index & 7];
|
||||
window = _windowArray[fcs_index & 7];
|
||||
fcsunk1 = _curWindow;
|
||||
|
||||
if (fcs == NULL || fcs->fcs_data == NULL)
|
||||
if (window == NULL || window->iconPtr == NULL)
|
||||
return;
|
||||
|
||||
changeWindow(fcs_index);
|
||||
fcs_putchar(12);
|
||||
changeWindow(fcsunk1);
|
||||
|
||||
for (i = 0; fcs->fcs_data->e[i].item != NULL; i++) {
|
||||
delete_hitarea_by_index(fcs->fcs_data->e[i].hit_area);
|
||||
for (i = 0; window->iconPtr->iconArray[i].item != NULL; i++) {
|
||||
delete_hitarea_by_index(window->iconPtr->iconArray[i].boxCode);
|
||||
}
|
||||
|
||||
if (fcs->fcs_data->upArrow != -1) {
|
||||
delete_hitarea_by_index(fcs->fcs_data->upArrow);
|
||||
if (window->iconPtr->upArrow != -1) {
|
||||
delete_hitarea_by_index(window->iconPtr->upArrow);
|
||||
}
|
||||
|
||||
if (fcs->fcs_data->downArrow != -1) {
|
||||
delete_hitarea_by_index(fcs->fcs_data->downArrow);
|
||||
if (window->iconPtr->downArrow != -1) {
|
||||
delete_hitarea_by_index(window->iconPtr->downArrow);
|
||||
if (getGameType() == GType_SIMON1)
|
||||
removeArrows(fcs, fcs_index);
|
||||
removeArrows(window, fcs_index);
|
||||
}
|
||||
|
||||
free(fcs->fcs_data);
|
||||
fcs->fcs_data = NULL;
|
||||
free(window->iconPtr);
|
||||
window->iconPtr = NULL;
|
||||
|
||||
_fcsData1[fcs_index] = 0;
|
||||
_fcsData2[fcs_index] = 0;
|
||||
}
|
||||
|
||||
// ok
|
||||
void SimonEngine::removeArrows(FillOrCopyStruct *fcs, uint fcs_index) {
|
||||
void SimonEngine::removeArrows(WindowBlock *window, uint fcs_index) {
|
||||
o_kill_sprite_simon1(128);
|
||||
}
|
||||
|
||||
@ -3154,40 +3154,40 @@ void SimonEngine::fcs_putchar(uint a) {
|
||||
}
|
||||
|
||||
// ok
|
||||
void SimonEngine::clearWindow(FillOrCopyStruct *fcs) {
|
||||
if (fcs->flags & 0x10)
|
||||
restoreWindow(fcs);
|
||||
void SimonEngine::clearWindow(WindowBlock *window) {
|
||||
if (window->flags & 0x10)
|
||||
restoreWindow(window);
|
||||
else
|
||||
colorWindow(fcs);
|
||||
colorWindow(window);
|
||||
|
||||
fcs->textColumn = 0;
|
||||
fcs->textRow = 0;
|
||||
fcs->textColumnOffset = 0;
|
||||
fcs->textLength = 0;
|
||||
window->textColumn = 0;
|
||||
window->textRow = 0;
|
||||
window->textColumnOffset = 0;
|
||||
window->textLength = 0;
|
||||
}
|
||||
|
||||
// ok
|
||||
void SimonEngine::restoreWindow(FillOrCopyStruct *fcs) {
|
||||
void SimonEngine::restoreWindow(WindowBlock *window) {
|
||||
_lockWord |= 0x8000;
|
||||
|
||||
if (getGameType() == GType_SIMON1) {
|
||||
restoreBlock(fcs->y + fcs->height * 8 + ((fcs == _windowArray[2]) ? 1 : 0), (fcs->x + fcs->width) * 8, fcs->y, fcs->x * 8);
|
||||
restoreBlock(window->y + window->height * 8 + ((window == _windowArray[2]) ? 1 : 0), (window->x + window->width) * 8, window->y, window->x * 8);
|
||||
} else {
|
||||
if (_restoreWindow6 && _windowArray[2] == fcs) {
|
||||
fcs = _windowArray[6];
|
||||
if (_restoreWindow6 && _windowArray[2] == window) {
|
||||
window = _windowArray[6];
|
||||
_restoreWindow6 = 0;
|
||||
}
|
||||
|
||||
if (getGameType() == GType_FF)
|
||||
restoreBlock(fcs->y + fcs->height, fcs->x + fcs->width, fcs->y, fcs->x);
|
||||
restoreBlock(window->y + window->height, window->x + window->width, window->y, window->x);
|
||||
else
|
||||
restoreBlock(fcs->y + fcs->height * 8, (fcs->x + fcs->width) * 8, fcs->y, fcs->x * 8);
|
||||
restoreBlock(window->y + window->height * 8, (window->x + window->width) * 8, window->y, window->x * 8);
|
||||
}
|
||||
|
||||
_lockWord &= ~0x8000;
|
||||
}
|
||||
|
||||
void SimonEngine::colorWindow(FillOrCopyStruct *fcs) {
|
||||
void SimonEngine::colorWindow(WindowBlock *window) {
|
||||
byte *dst;
|
||||
uint h, w;
|
||||
|
||||
@ -3196,17 +3196,17 @@ void SimonEngine::colorWindow(FillOrCopyStruct *fcs) {
|
||||
dst = getFrontBuf();
|
||||
|
||||
if (getGameType() == GType_FF) {
|
||||
dst += _dxSurfacePitch * fcs->y + fcs->x;
|
||||
h = fcs->height;
|
||||
w = fcs->width;
|
||||
dst += _dxSurfacePitch * window->y + window->x;
|
||||
h = window->height;
|
||||
w = window->width;
|
||||
} else {
|
||||
dst += _dxSurfacePitch * fcs->y + fcs->x * 8;
|
||||
h = fcs->height * 8;
|
||||
w = fcs->width * 8;
|
||||
dst += _dxSurfacePitch * window->y + window->x * 8;
|
||||
h = window->height * 8;
|
||||
w = window->width * 8;
|
||||
}
|
||||
|
||||
do {
|
||||
memset(dst, fcs->fill_color, w);
|
||||
memset(dst, window->fill_color, w);
|
||||
dst += _dxSurfacePitch;
|
||||
} while (--h);
|
||||
|
||||
@ -3389,10 +3389,10 @@ void SimonEngine::video_toggle_colors(HitArea * ha, byte a, byte b, byte c, byte
|
||||
_lockWord &= ~0x8000;
|
||||
}
|
||||
|
||||
void SimonEngine::video_copy_if_flag_0x8_c(FillOrCopyStruct *fcs) {
|
||||
if (fcs->flags & 8)
|
||||
restoreWindow(fcs);
|
||||
fcs->mode = 0;
|
||||
void SimonEngine::video_copy_if_flag_0x8_c(WindowBlock *window) {
|
||||
if (window->flags & 8)
|
||||
restoreWindow(window);
|
||||
window->mode = 0;
|
||||
}
|
||||
|
||||
void SimonEngine::loadSprite(uint windowNum, uint fileId, uint vgaSpriteId, uint x, uint y, uint palette) {
|
||||
|
@ -52,7 +52,7 @@ struct Child;
|
||||
struct Child2;
|
||||
|
||||
struct Item;
|
||||
struct FillOrCopyStruct;
|
||||
struct WindowBlock;
|
||||
struct Subroutine;
|
||||
struct SubroutineLine;
|
||||
struct TimeEvent;
|
||||
@ -67,7 +67,7 @@ struct HitArea {
|
||||
uint16 width, height;
|
||||
uint16 flags;
|
||||
uint16 id;
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *window;
|
||||
Item *item_ptr;
|
||||
uint16 verb;
|
||||
uint16 priority;
|
||||
@ -273,7 +273,7 @@ protected:
|
||||
int16 _scriptAdj1, _scriptAdj2;
|
||||
|
||||
uint16 _curWindow;
|
||||
FillOrCopyStruct *_textWindow;
|
||||
WindowBlock *_textWindow;
|
||||
|
||||
Item *_subjectItem, *_objectItem;
|
||||
Item *_item1;
|
||||
@ -372,7 +372,7 @@ protected:
|
||||
uint16 _bitArray[48];
|
||||
int16 _variableArray[256];
|
||||
|
||||
FillOrCopyStruct *_windowArray[8];
|
||||
WindowBlock *_windowArray[8];
|
||||
|
||||
byte _fcsData1[8];
|
||||
bool _fcsData2[8];
|
||||
@ -406,7 +406,7 @@ protected:
|
||||
|
||||
VgaTimerEntry _vgaTimerList[95];
|
||||
|
||||
FillOrCopyStruct *_fcs_list;
|
||||
WindowBlock *_fcs_list;
|
||||
|
||||
byte _lettersToPrintBuf[80];
|
||||
|
||||
@ -611,7 +611,7 @@ protected:
|
||||
void mouseOff();
|
||||
void mouseOn();
|
||||
|
||||
void drawIconArray(uint i, Item *item_ptr, int unk1, int unk2);
|
||||
void drawIconArray(uint i, Item *item_ptr, int line, int classMask);
|
||||
|
||||
void loadTextIntoMem(uint string_id);
|
||||
void loadTablesIntoMem(uint subr_id);
|
||||
@ -632,22 +632,22 @@ protected:
|
||||
void defocusHitarea();
|
||||
void endCutscene();
|
||||
void runSubroutine101();
|
||||
void checkUp(FillOrCopyStruct *fcs);
|
||||
void checkDown(FillOrCopyStruct *fcs);
|
||||
void inventoryUp(FillOrCopyStruct *fcs);
|
||||
void inventoryDown(FillOrCopyStruct *fcs);
|
||||
void checkUp(WindowBlock *window);
|
||||
void checkDown(WindowBlock *window);
|
||||
void inventoryUp(WindowBlock *window);
|
||||
void inventoryDown(WindowBlock *window);
|
||||
void hitareaChangedHelper();
|
||||
void focusVerb(uint hitarea_id);
|
||||
HitArea *findHitAreaByID(uint hitarea_id);
|
||||
|
||||
void showActionString(uint x, const byte *string);
|
||||
void video_putchar(FillOrCopyStruct *fcs, byte c, byte b = 0);
|
||||
void clearWindow(FillOrCopyStruct *fcs);
|
||||
void video_putchar(WindowBlock *window, byte c, byte b = 0);
|
||||
void clearWindow(WindowBlock *window);
|
||||
void video_toggle_colors(HitArea * ha, byte a, byte b, byte c, byte d);
|
||||
|
||||
void read_vga_from_datfile_1(uint vga_id);
|
||||
|
||||
uint get_fcs_ptr_3_index(FillOrCopyStruct *fcs);
|
||||
uint get_fcs_ptr_3_index(WindowBlock *window);
|
||||
|
||||
void setup_hitarea_from_pos(uint x, uint y, uint mode);
|
||||
void new_current_hitarea(HitArea * ha);
|
||||
@ -661,11 +661,11 @@ protected:
|
||||
void drawMousePointer();
|
||||
|
||||
void removeIconArray(uint fcs_index);
|
||||
void draw_icon_c(FillOrCopyStruct *fcs, uint icon, uint x, uint y);
|
||||
void draw_icon_c(WindowBlock *window, uint icon, uint x, uint y);
|
||||
bool has_item_childflag_0x10(Item *item);
|
||||
uint item_get_icon_number(Item *item);
|
||||
uint setup_icon_hit_area(FillOrCopyStruct *fcs, uint x, uint y, uint icon_number, Item *item_ptr);
|
||||
void addArrows(FillOrCopyStruct *fcs, uint fcs_index);
|
||||
uint setup_icon_hit_area(WindowBlock *window, uint x, uint y, uint icon_number, Item *item_ptr);
|
||||
void addArrows(WindowBlock *window, uint fcs_index);
|
||||
|
||||
void loadIconData();
|
||||
void loadIconFile();
|
||||
@ -688,12 +688,12 @@ protected:
|
||||
void o_defineWindow(uint a, uint b, uint c, uint d, uint e, uint f, uint g, uint h);
|
||||
void playSpeech(uint speech_id, uint vga_sprite_id);
|
||||
void printText(uint vga_sprite_id, uint color, const char *string_ptr, int16 x, int16 y, int16 width);
|
||||
FillOrCopyStruct *openWindow(uint x, uint y, uint w, uint h, uint flags, uint fill_color, uint text_color);
|
||||
WindowBlock *openWindow(uint x, uint y, uint w, uint h, uint flags, uint fill_color, uint text_color);
|
||||
|
||||
void render_string_amiga(uint vga_sprite_id, uint color, uint width, uint height, const char *txt);
|
||||
void render_string(uint vga_sprite_id, uint color, uint width, uint height, const char *txt);
|
||||
|
||||
void setArrowHitAreas(FillOrCopyStruct *fcs, uint fcs_index);
|
||||
void setArrowHitAreas(WindowBlock *window, uint fcs_index);
|
||||
|
||||
byte *setup_vga_destination(uint32 size);
|
||||
void vga_buf_unk_proc3(byte *end);
|
||||
@ -827,14 +827,14 @@ protected:
|
||||
|
||||
bool isSpriteLoaded(uint16 id, uint16 fileId);
|
||||
|
||||
void video_copy_if_flag_0x8_c(FillOrCopyStruct *fcs);
|
||||
void video_copy_if_flag_0x8_c(WindowBlock *window);
|
||||
void delete_hitarea_by_index(uint index);
|
||||
|
||||
void removeArrows(FillOrCopyStruct *fcs, uint fcs_index);
|
||||
void removeArrows(WindowBlock *window, uint fcs_index);
|
||||
void fcs_putchar(uint a);
|
||||
|
||||
void restoreWindow(FillOrCopyStruct *fcs);
|
||||
void colorWindow(FillOrCopyStruct *fcs);
|
||||
void restoreWindow(WindowBlock *window);
|
||||
void colorWindow(WindowBlock *window);
|
||||
|
||||
void restoreBlock(uint b, uint r, uint y, uint x);
|
||||
|
||||
@ -873,7 +873,7 @@ protected:
|
||||
void dx_copy_from_2_to_attached(uint x, uint y, uint w, uint h);
|
||||
|
||||
void print_char_helper_1(const byte *src, uint len);
|
||||
void print_char_helper_5(FillOrCopyStruct *fcs);
|
||||
void print_char_helper_5(WindowBlock *window);
|
||||
|
||||
void quickLoadOrSave();
|
||||
void shutdown();
|
||||
@ -889,8 +889,8 @@ protected:
|
||||
void showmessage_helper_2();
|
||||
void print_char_helper_6(uint i);
|
||||
|
||||
void video_putchar_newline(FillOrCopyStruct *fcs);
|
||||
void video_putchar_drawchar(FillOrCopyStruct *fcs, uint x, uint y, byte chr);
|
||||
void video_putchar_newline(WindowBlock *window);
|
||||
void video_putchar_drawchar(WindowBlock *window, uint x, uint y, byte chr);
|
||||
|
||||
void loadMusic(uint music);
|
||||
void checkTimerCallback();
|
||||
@ -916,9 +916,9 @@ protected:
|
||||
void saveOrLoadDialog(bool load);
|
||||
void o_unk_132_helper_3();
|
||||
int o_unk_132_helper(bool *b, char *buf);
|
||||
void o_clearCharacter(FillOrCopyStruct *fcs, int x, byte b = 0);
|
||||
void o_clearCharacter(WindowBlock *window, int x, byte b = 0);
|
||||
void saveGameDialog(char *buf);
|
||||
void o_fileError(FillOrCopyStruct *fcs, bool save_error);
|
||||
void o_fileError(WindowBlock *window, bool save_error);
|
||||
|
||||
int countSaveGames();
|
||||
int displaySaveGameList(int curpos, bool load, char *dst);
|
||||
|
@ -278,30 +278,30 @@ void SimonEngine::focusVerb(uint hitarea_id) {
|
||||
}
|
||||
|
||||
void SimonEngine::showActionString(uint x, const byte *string) {
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *window;
|
||||
|
||||
fcs = _windowArray[1];
|
||||
if (fcs == NULL || fcs->text_color == 0)
|
||||
window = _windowArray[1];
|
||||
if (window == NULL || window->text_color == 0)
|
||||
return;
|
||||
|
||||
fcs->textColumn = x >> 3;
|
||||
fcs->textColumnOffset = x & 7;
|
||||
window->textColumn = x >> 3;
|
||||
window->textColumnOffset = x & 7;
|
||||
|
||||
for (; *string; string++)
|
||||
video_putchar(fcs, *string);
|
||||
video_putchar(window, *string);
|
||||
}
|
||||
|
||||
void SimonEngine::hitareaChangedHelper() {
|
||||
FillOrCopyStruct *fcs;
|
||||
WindowBlock *window;
|
||||
|
||||
if (getGameType() == GType_SIMON2) {
|
||||
if (getBitFlag(79))
|
||||
return;
|
||||
}
|
||||
|
||||
fcs = _windowArray[1];
|
||||
if (fcs != NULL && fcs->text_color != 0)
|
||||
clearWindow(fcs);
|
||||
window = _windowArray[1];
|
||||
if (window != NULL && window->text_color != 0)
|
||||
clearWindow(window);
|
||||
|
||||
_lastHitArea2Ptr = NULL;
|
||||
_hitAreaPtr7 = NULL;
|
||||
@ -508,15 +508,15 @@ void SimonEngine::leaveHitAreaById(uint hitarea_id) {
|
||||
hitarea_leave(ha);
|
||||
}
|
||||
|
||||
void SimonEngine::checkUp(FillOrCopyStruct *fcs) {
|
||||
void SimonEngine::checkUp(WindowBlock *window) {
|
||||
uint16 j, k;
|
||||
|
||||
if (((_variableArray[31] - _variableArray[30]) == 40) && (_variableArray[31] > 52)) {
|
||||
k = (((_variableArray[31] / 52) - 2) % 3);
|
||||
j = k * 6;
|
||||
if (!is_hitarea_0x40_clear(j + 201)) {
|
||||
uint index = get_fcs_ptr_3_index(fcs);
|
||||
drawIconArray(index, fcs->fcs_data->item_ptr, 0, fcs->fcs_data->unk2);
|
||||
uint index = get_fcs_ptr_3_index(window);
|
||||
drawIconArray(index, window->iconPtr->itemRef, 0, window->iconPtr->classMask);
|
||||
loadSprite(4, 9, k + 34, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
@ -537,12 +537,12 @@ void SimonEngine::checkUp(FillOrCopyStruct *fcs) {
|
||||
}
|
||||
}
|
||||
|
||||
void SimonEngine::checkDown(FillOrCopyStruct *fcs) {
|
||||
void SimonEngine::checkDown(WindowBlock *window) {
|
||||
uint16 j, k;
|
||||
|
||||
if (((_variableArray[31] - _variableArray[30]) == 24) && (_iOverflow == 1)) {
|
||||
uint index = get_fcs_ptr_3_index(fcs);
|
||||
drawIconArray(index, fcs->fcs_data->item_ptr, 0, fcs->fcs_data->unk2);
|
||||
uint index = get_fcs_ptr_3_index(window);
|
||||
drawIconArray(index, window->iconPtr->itemRef, 0, window->iconPtr->classMask);
|
||||
k = ((_variableArray[31] / 52) % 3);
|
||||
loadSprite(4, 9, k + 25, 0, 0, 0);
|
||||
_variableArray[31] += 52;
|
||||
@ -562,51 +562,51 @@ void SimonEngine::checkDown(FillOrCopyStruct *fcs) {
|
||||
}
|
||||
}
|
||||
|
||||
void SimonEngine::inventoryUp(FillOrCopyStruct *fcs) {
|
||||
void SimonEngine::inventoryUp(WindowBlock *window) {
|
||||
if (getGameType() == GType_FF) {
|
||||
_marks = 0;
|
||||
checkUp(fcs);
|
||||
checkUp(window);
|
||||
loadSprite(4, 9 ,21 ,0 ,0, 0);
|
||||
while(1) {
|
||||
if (_currentBoxNumber != 32763 || _leftButtonDown)
|
||||
break;
|
||||
checkUp(fcs);
|
||||
checkUp(window);
|
||||
}
|
||||
o_waitForMark(2);
|
||||
checkUp(fcs);
|
||||
checkUp(window);
|
||||
o_sync(922);
|
||||
o_waitForMark(1);
|
||||
checkUp(fcs);
|
||||
checkUp(window);
|
||||
} else {
|
||||
if (fcs->fcs_data->unk1 == 0)
|
||||
if (window->iconPtr->line == 0)
|
||||
return;
|
||||
|
||||
mouseOff();
|
||||
uint index = get_fcs_ptr_3_index(fcs);
|
||||
drawIconArray(index, fcs->fcs_data->item_ptr, fcs->fcs_data->unk1 - 1, fcs->fcs_data->unk2);
|
||||
uint index = get_fcs_ptr_3_index(window);
|
||||
drawIconArray(index, window->iconPtr->itemRef, window->iconPtr->line - 1, window->iconPtr->classMask);
|
||||
mouseOn();
|
||||
}
|
||||
}
|
||||
|
||||
void SimonEngine::inventoryDown(FillOrCopyStruct *fcs) {
|
||||
void SimonEngine::inventoryDown(WindowBlock *window) {
|
||||
if (getGameType() == GType_FF) {
|
||||
_marks = 0;
|
||||
checkDown(fcs);
|
||||
checkDown(window);
|
||||
loadSprite(4, 9, 23, 0, 0, 0);
|
||||
while(1) {
|
||||
if (_currentBoxNumber != 32764 || _leftButtonDown)
|
||||
break;
|
||||
checkDown(fcs);
|
||||
checkDown(window);
|
||||
}
|
||||
o_waitForMark(2);
|
||||
checkDown(fcs);
|
||||
checkDown(window);
|
||||
o_sync(924);
|
||||
o_waitForMark(1);
|
||||
checkDown(fcs);
|
||||
checkDown(window);
|
||||
} else {
|
||||
mouseOff();
|
||||
uint index = get_fcs_ptr_3_index(fcs);
|
||||
drawIconArray(index, fcs->fcs_data->item_ptr, fcs->fcs_data->unk1 + 1, fcs->fcs_data->unk2);
|
||||
uint index = get_fcs_ptr_3_index(window);
|
||||
drawIconArray(index, window->iconPtr->itemRef, window->iconPtr->line + 1, window->iconPtr->classMask);
|
||||
mouseOn();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user