mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-07 22:38:03 +03:00
Move CG display flags to NACT
This commit is contained in:
@@ -225,7 +225,6 @@ AGS::AGS(const Config& config, const GameId& game_id) : game_id(game_id)
|
||||
|
||||
// CG表示
|
||||
cg_dest = std::nullopt;
|
||||
get_palette = extract_palette = extract_cg = true;
|
||||
palette_bank = -1;
|
||||
|
||||
// マウスカーソル
|
||||
|
||||
+14
-11
@@ -50,6 +50,12 @@ struct CG {
|
||||
SDL_Palette* palette() const { return surface_->format->palette; }
|
||||
};
|
||||
|
||||
enum CgFlags {
|
||||
CG_EXTRACT_CG = 1,
|
||||
CG_EXTRACT_PALETTE = 2,
|
||||
CG_GET_PALETTE = 4,
|
||||
};
|
||||
|
||||
class AGS
|
||||
{
|
||||
protected:
|
||||
@@ -77,11 +83,11 @@ private:
|
||||
SDL_Cursor* hCursor[10];
|
||||
|
||||
// AGS
|
||||
CG load_gm3(const std::vector<uint8_t>& data, int transparent); // Intruder -桜屋敷の探索-
|
||||
CG load_vsp2l(const std::vector<uint8_t>& data, int transparent); // Little Vampire
|
||||
CG load_gl3(const std::vector<uint8_t>& data, bool set_palette, int transparent);
|
||||
CG load_pms(int page, const std::vector<uint8_t>& data, bool set_palette, int transparent);
|
||||
CG load_vsp(const std::vector<uint8_t>& data, bool set_palette, int transparent);
|
||||
CG load_gm3(const std::vector<uint8_t>& data, int transparent, uint8_t flags); // Intruder -桜屋敷の探索-
|
||||
CG load_vsp2l(const std::vector<uint8_t>& data, int transparent, uint8_t flags); // Little Vampire
|
||||
CG load_gl3(const std::vector<uint8_t>& data, bool set_palette, int transparent, uint8_t flags);
|
||||
CG load_pms(int page, const std::vector<uint8_t>& data, bool set_palette, int transparent, uint8_t flags);
|
||||
CG load_vsp(const std::vector<uint8_t>& data, bool set_palette, int transparent, uint8_t flags);
|
||||
|
||||
void draw_char(int dest, int dest_x, int dest_y, uint16 code, TTF_Font* font, uint8 color);
|
||||
void draw_char_antialias(int dest, int dest_x, int dest_y, uint16 code, TTF_Font* font, uint8 color, uint8 cache[]);
|
||||
@@ -103,9 +109,9 @@ public:
|
||||
|
||||
void update_screen();
|
||||
|
||||
void load_cg(int page, int transparent);
|
||||
void load_cg(int page, int transparent, uint8_t flags);
|
||||
// Decodes a CG without drawing it, but still updates the palette.
|
||||
CG load_cg_surface(int page, int transparent = -1);
|
||||
CG load_cg_surface(int page, int transparent, uint8_t flags);
|
||||
// Returns an ACG page bytes, without decoding it.
|
||||
std::vector<uint8_t> load_cg_data(int page) { return acg.load(page); }
|
||||
void blit_cg(int dest, CG& cg, const SDL_Rect* src, int dx, int dy);
|
||||
@@ -161,7 +167,7 @@ public:
|
||||
menu_w[index - 1].frame = frame;
|
||||
}
|
||||
|
||||
void load_cursor(int page);
|
||||
void load_cursor(int page, uint8_t flags);
|
||||
void select_cursor();
|
||||
void translate_mouse_coords(int* x, int* y);
|
||||
|
||||
@@ -213,9 +219,6 @@ public:
|
||||
|
||||
// CG表示
|
||||
std::optional<SDL_Point> cg_dest;
|
||||
bool get_palette;
|
||||
bool extract_palette;
|
||||
bool extract_cg;
|
||||
std::unordered_set<int> censor_list;
|
||||
std::unordered_set<int> ignore_palette;
|
||||
int palette_bank;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
extern SDL_Window* g_window;
|
||||
extern SDL_Renderer* g_renderer;
|
||||
|
||||
void AGS::load_cursor(int page)
|
||||
void AGS::load_cursor(int page, uint8_t flags)
|
||||
{
|
||||
// カーソルCGをロードする
|
||||
auto j_backup = cg_dest;
|
||||
@@ -19,7 +19,7 @@ void AGS::load_cursor(int page)
|
||||
cg_dest = {0, 0};
|
||||
dest_screen = 1;
|
||||
|
||||
load_cg(page, -1);
|
||||
load_cg(page, -1, flags);
|
||||
|
||||
cg_dest = j_backup;
|
||||
dest_screen = dest;
|
||||
|
||||
+17
-17
@@ -31,7 +31,7 @@ void mosaic(SDL_Surface* sf) {
|
||||
|
||||
} // namespace
|
||||
|
||||
CG AGS::load_cg_surface(int page, int transparent)
|
||||
CG AGS::load_cg_surface(int page, int transparent, uint8_t flags)
|
||||
{
|
||||
if (bmp_prefix) {
|
||||
WARNING("not implemented");
|
||||
@@ -41,42 +41,42 @@ CG AGS::load_cg_surface(int page, int transparent)
|
||||
if (data.empty())
|
||||
return CG();
|
||||
|
||||
bool set_palette = extract_palette && !ignore_palette.count(page);
|
||||
bool set_palette = (flags & CG_EXTRACT_PALETTE) && !ignore_palette.count(page);
|
||||
CG cg;
|
||||
switch (game_id.sys_ver) {
|
||||
case 1:
|
||||
switch (game_id.game) {
|
||||
case GameId::BUNKASAI:
|
||||
case GameId::GAKUEN_SENKI:
|
||||
cg = load_vsp(data, set_palette, transparent);
|
||||
cg = load_vsp(data, set_palette, transparent, flags);
|
||||
break;
|
||||
case GameId::INTRUDER:
|
||||
// cg = load_gm3(data, transparent);
|
||||
cg = load_vsp(data, set_palette, transparent); // 暫定
|
||||
// cg = load_gm3(data, transparent, flags);
|
||||
cg = load_vsp(data, set_palette, transparent, flags); // 暫定
|
||||
break;
|
||||
case GameId::LITTLE_VAMPIRE:
|
||||
cg = load_vsp2l(data, transparent);
|
||||
cg = load_vsp2l(data, transparent, flags);
|
||||
break;
|
||||
default:
|
||||
cg = load_gl3(data, set_palette, transparent);
|
||||
cg = load_gl3(data, set_palette, transparent, flags);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (game_id.is(GameId::AYUMI_PROTO)) {
|
||||
// あゆみちゃん物語 PROTO
|
||||
cg = load_gl3(data, set_palette, transparent);
|
||||
cg = load_gl3(data, set_palette, transparent, flags);
|
||||
} else if (game_id.is(GameId::AYUMI_FD) || game_id.is(GameId::AYUMI_HINT)) {
|
||||
// あゆみちゃん物語
|
||||
cg = load_vsp(data, set_palette, transparent);
|
||||
cg = load_vsp(data, set_palette, transparent, flags);
|
||||
} else if (game_id.is_sdps()) {
|
||||
// Super D.P.S
|
||||
cg = load_pms(page, data, set_palette, transparent);
|
||||
cg = load_pms(page, data, set_palette, transparent, flags);
|
||||
} else {
|
||||
if(data[0x8] == 0) {
|
||||
cg = load_vsp(data, set_palette, transparent);
|
||||
cg = load_vsp(data, set_palette, transparent, flags);
|
||||
} else {
|
||||
cg = load_pms(page, data, set_palette, transparent);
|
||||
cg = load_pms(page, data, set_palette, transparent, flags);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -84,10 +84,10 @@ CG AGS::load_cg_surface(int page, int transparent)
|
||||
if(data[0x8] == 0) {
|
||||
if (game_id.is(GameId::FUNNYBEE_FD) || game_id.is(GameId::FUNNYBEE_CD))
|
||||
set_palette = !ignore_palette.count(page);
|
||||
cg = load_vsp(data, set_palette, transparent);
|
||||
cg = load_vsp(data, set_palette, transparent, flags);
|
||||
} else {
|
||||
set_palette = set_palette || game_id.is(GameId::FUNNYBEE_CD);
|
||||
cg = load_pms(page, data, set_palette, transparent);
|
||||
cg = load_pms(page, data, set_palette, transparent, flags);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -119,9 +119,9 @@ void AGS::blit_cg(int dest, CG& cg, const SDL_Rect* src, int dx, int dy)
|
||||
}
|
||||
}
|
||||
|
||||
void AGS::load_cg(int page, int transparent)
|
||||
void AGS::load_cg(int page, int transparent, uint8_t flags)
|
||||
{
|
||||
CG cg = load_cg_surface(page, transparent);
|
||||
CG cg = load_cg_surface(page, transparent, flags);
|
||||
if (!cg)
|
||||
return;
|
||||
|
||||
@@ -132,7 +132,7 @@ void AGS::load_cg(int page, int transparent)
|
||||
cg_dest = std::nullopt;
|
||||
}
|
||||
|
||||
if (extract_cg)
|
||||
if (flags & CG_EXTRACT_CG)
|
||||
blit_cg(dest_screen, cg, NULL, cg.x, cg.y);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -7,7 +7,7 @@
|
||||
#include "ags.h"
|
||||
#include <string.h>
|
||||
|
||||
CG AGS::load_gl3(const std::vector<uint8_t>& data, bool set_palette, int transparent)
|
||||
CG AGS::load_gl3(const std::vector<uint8_t>& data, bool set_palette, int transparent, uint8_t flags)
|
||||
{
|
||||
// ヘッダ取得
|
||||
uint16 tmp = (data[0x30] | (data[0x31] << 8)) - 0x8000;
|
||||
@@ -23,7 +23,7 @@ CG AGS::load_gl3(const std::vector<uint8_t>& data, bool set_palette, int transpa
|
||||
}
|
||||
|
||||
// パレット取得
|
||||
if(get_palette) {
|
||||
if (flags & CG_GET_PALETTE) {
|
||||
SDL_Color colors[16];
|
||||
for(int i = 0; i < 16; i++) {
|
||||
uint8_t b = (data[i * 3 + 0] & 0xf) * 0x11;
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
#include "ags.h"
|
||||
#include <string.h>
|
||||
|
||||
CG AGS::load_gm3(const std::vector<uint8_t>& data, int transparent)
|
||||
CG AGS::load_gm3(const std::vector<uint8_t>& data, int transparent, uint8_t flags)
|
||||
{
|
||||
// ヘッダ取得
|
||||
uint16 tmp = (data[0x30] | (data[0x31] << 8)) - 0x8000;
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@
|
||||
#include "game_id.h"
|
||||
#include <string.h>
|
||||
|
||||
CG AGS::load_pms(int page, const std::vector<uint8_t>& data, bool set_palette, int transparent)
|
||||
CG AGS::load_pms(int page, const std::vector<uint8_t>& data, bool set_palette, int transparent, uint8_t flags)
|
||||
{
|
||||
// ヘッダ取得
|
||||
int sx = data[0x0] | (data[0x1] << 8);
|
||||
@@ -19,7 +19,7 @@ CG AGS::load_pms(int page, const std::vector<uint8_t>& data, bool set_palette, i
|
||||
int height = ey - sy + 1;
|
||||
uint16_t mask = data[0xa] | (data[0xb] << 8);
|
||||
|
||||
if(get_palette) {
|
||||
if (flags & CG_GET_PALETTE) {
|
||||
SDL_Color colors[256];
|
||||
int p = 0x20;
|
||||
for(int i = 0; i < 16; i++) {
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@ void trim(CG& cg, int w, int h)
|
||||
|
||||
} // namespace
|
||||
|
||||
CG AGS::load_vsp(const std::vector<uint8_t>& data, bool set_palette, int transparent)
|
||||
CG AGS::load_vsp(const std::vector<uint8_t>& data, bool set_palette, int transparent, uint8_t flags)
|
||||
{
|
||||
// ヘッダ取得
|
||||
int sx = data[0] | (data[1] << 8);
|
||||
@@ -47,7 +47,7 @@ CG AGS::load_vsp(const std::vector<uint8_t>& data, bool set_palette, int transpa
|
||||
}
|
||||
|
||||
// パレット取得
|
||||
if(get_palette && transparent != 101) {
|
||||
if ((flags & CG_GET_PALETTE) && transparent != 101) {
|
||||
int p = 0x0a;
|
||||
SDL_Color colors[16];
|
||||
for(int i = 0; i < 16; i++) {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "ags.h"
|
||||
#include <string.h>
|
||||
|
||||
CG AGS::load_vsp2l(const std::vector<uint8_t>& data, int transparent)
|
||||
CG AGS::load_vsp2l(const std::vector<uint8_t>& data, int transparent, uint8_t flags)
|
||||
{
|
||||
// ヘッダ取得
|
||||
int sx = data[0] | (data[1] << 8);
|
||||
|
||||
+2
-1
@@ -33,7 +33,8 @@ NACT::NACT(const Config& config, const GameId& game_id)
|
||||
game_id(game_id),
|
||||
encoding(Encoding::create(game_id.encoding)),
|
||||
strings(config.get_strings(encoding.get(), game_id.language == ENGLISH)),
|
||||
seed(SDL_GetTicks())
|
||||
seed(SDL_GetTicks()),
|
||||
cg_flags(CG_GET_PALETTE | CG_EXTRACT_PALETTE | CG_EXTRACT_CG)
|
||||
{
|
||||
platform_initialize();
|
||||
|
||||
|
||||
@@ -133,6 +133,9 @@ protected:
|
||||
Box box[20];
|
||||
void draw_box(int index);
|
||||
|
||||
uint8_t cg_flags;
|
||||
void load_cg(int page, int transparent);
|
||||
|
||||
struct MenuItem {
|
||||
uint16_t addr;
|
||||
uint8_t verb;
|
||||
|
||||
@@ -241,7 +241,7 @@ private:
|
||||
void load_cg_to_work_screen(int page) {
|
||||
int saved = ags->dest_screen;
|
||||
ags->dest_screen = WORK_SCREEN;
|
||||
ags->load_cg(page, -1);
|
||||
load_cg(page, -1);
|
||||
ags->dest_screen = saved;
|
||||
}
|
||||
|
||||
@@ -623,7 +623,7 @@ private:
|
||||
CG load_map_sheet(int page) {
|
||||
if (page == 0)
|
||||
return CG();
|
||||
CG cg = ags->load_cg_surface(page, TRANSPARENT_COLOR);
|
||||
CG cg = ags->load_cg_surface(page, TRANSPARENT_COLOR, cg_flags);
|
||||
if (!cg)
|
||||
ERROR("map resource error: CG page %d not available", page);
|
||||
return cg;
|
||||
@@ -1202,7 +1202,7 @@ private:
|
||||
load_cg_to_work_screen(230);
|
||||
// Save the part of the display CG 208 overwrites.
|
||||
ags->copy_screen(0, WORK_SCREEN, 16, 192, 367, 294, 0, 48);
|
||||
ags->load_cg(208, -1);
|
||||
load_cg(208, -1);
|
||||
|
||||
VAR_TROOP_COUNT_FULL = VAR_TROOP_COUNT;
|
||||
draw_troop_counts();
|
||||
|
||||
+25
-25
@@ -339,7 +339,7 @@ void NACT_Sys1::cmd_g()
|
||||
|
||||
TRACE("G %d:", page);
|
||||
|
||||
ags->load_cg(page, -1);
|
||||
load_cg(page, -1);
|
||||
}
|
||||
|
||||
void NACT_Sys1::cmd_l()
|
||||
@@ -392,7 +392,7 @@ void NACT_Sys1::cmd_u()
|
||||
|
||||
TRACE("U %d,%d:", page, transparent);
|
||||
|
||||
ags->load_cg(page, transparent);
|
||||
load_cg(page, transparent);
|
||||
}
|
||||
|
||||
void NACT_Sys1::cmd_y()
|
||||
@@ -543,9 +543,9 @@ public:
|
||||
|
||||
void opening() override {
|
||||
mako->play_music(4);
|
||||
ags->load_cg(3, -1);
|
||||
load_cg(3, -1);
|
||||
WAIT(2000);
|
||||
ags->load_cg(38, -1);
|
||||
load_cg(38, -1);
|
||||
cmd_a();
|
||||
draw_box(0);
|
||||
}
|
||||
@@ -559,12 +559,12 @@ public:
|
||||
|
||||
void opening() override {
|
||||
mako->set_cd_track(1, 1);
|
||||
ags->load_cg(302, -1);
|
||||
load_cg(302, -1);
|
||||
WAIT(3000);
|
||||
ags->load_cg(303, -1);
|
||||
load_cg(303, -1);
|
||||
WAIT(3000);
|
||||
mako->play_music(1);
|
||||
ags->load_cg(304, -1);
|
||||
load_cg(304, -1);
|
||||
WAIT(4000);
|
||||
}
|
||||
|
||||
@@ -575,7 +575,7 @@ public:
|
||||
page = (page == 3) ? 94 : page;
|
||||
|
||||
if (enable_graphics)
|
||||
ags->load_cg(page, -1);
|
||||
load_cg(page, -1);
|
||||
}
|
||||
|
||||
void cmd_y() override {
|
||||
@@ -629,7 +629,7 @@ public:
|
||||
|
||||
if (param != 30 && (param < 34 || param > 46)) {
|
||||
if (enable_graphics) {
|
||||
ags->load_cg(param + 250, -1);
|
||||
load_cg(param + 250, -1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -642,13 +642,13 @@ public:
|
||||
// Originally this would have loaded Image 296, the party status bar, to screen 1 for future reference. However, due to trouble with
|
||||
// the palette, I decided to load it before using each subcommand, instead.
|
||||
/*ags->dest_screen = 1;
|
||||
ags->load_cg(296, -1);
|
||||
load_cg(296, -1);
|
||||
ags->dest_screen = 0;*/
|
||||
}
|
||||
else if (param == 30) {
|
||||
// Load party status bar to screen 1.
|
||||
ags->dest_screen = 1;
|
||||
ags->load_cg(296, -1);
|
||||
load_cg(296, -1);
|
||||
ags->dest_screen = 0;
|
||||
|
||||
// Draw Wataru's icon.
|
||||
@@ -661,7 +661,7 @@ public:
|
||||
|
||||
// Load party status bar to screen 1.
|
||||
ags->dest_screen = 1;
|
||||
ags->load_cg(296, -1);
|
||||
load_cg(296, -1);
|
||||
ags->dest_screen = 0;
|
||||
|
||||
// Draw a blank party icon to init or clear the party box.
|
||||
@@ -673,7 +673,7 @@ public:
|
||||
|
||||
// Load party status bar to screen 1.
|
||||
ags->dest_screen = 1;
|
||||
ags->load_cg(296, -1);
|
||||
load_cg(296, -1);
|
||||
ags->dest_screen = 0;
|
||||
|
||||
// Draw a party member's icon to the party bar.
|
||||
@@ -694,9 +694,9 @@ public:
|
||||
: NACT_Sys1(config, game_id) {}
|
||||
|
||||
void opening() override {
|
||||
ags->load_cg(77, -1);
|
||||
load_cg(77, -1);
|
||||
WAIT(1667);
|
||||
ags->load_cg(74, -1);
|
||||
load_cg(74, -1);
|
||||
}
|
||||
|
||||
void cmd_g() override {
|
||||
@@ -704,7 +704,7 @@ public:
|
||||
TRACE("G %d:", page);
|
||||
|
||||
page = (page == 97) ? 96 : (page == 98) ? 97 : page;
|
||||
ags->load_cg(page, -1);
|
||||
load_cg(page, -1);
|
||||
if (page == 94)
|
||||
WAIT(400);
|
||||
if (page == 81 || page == 82)
|
||||
@@ -716,7 +716,7 @@ public:
|
||||
int transparent = sco.getd();
|
||||
TRACE("U %d,%d:", page, transparent);
|
||||
|
||||
ags->load_cg(page, 11);
|
||||
load_cg(page, 11);
|
||||
if (page == 5)
|
||||
WAIT(400);
|
||||
}
|
||||
@@ -781,7 +781,7 @@ public:
|
||||
|
||||
// 矢印を消去する
|
||||
if (map_page) {
|
||||
ags->load_cg(map_page, -1);
|
||||
load_cg(map_page, -1);
|
||||
if (paint_x) {
|
||||
ags->paint(paint_x, paint_y * 2, 2 + 16);
|
||||
}
|
||||
@@ -806,8 +806,8 @@ public:
|
||||
ags->box_fill(0, 0, 0, 640, 400, 0);
|
||||
} else {
|
||||
// Restore the screen
|
||||
ags->load_cg(74, 8);
|
||||
ags->load_cg(81, -1);
|
||||
load_cg(74, 8);
|
||||
load_cg(81, -1);
|
||||
map_page = 81;
|
||||
}
|
||||
} else if (cmd == 3) {
|
||||
@@ -838,9 +838,9 @@ public:
|
||||
|
||||
void opening() override {
|
||||
mako->play_music(2);
|
||||
ags->load_cg(1, -1);
|
||||
load_cg(1, -1);
|
||||
WAIT(3000);
|
||||
ags->load_cg(81, -1);
|
||||
load_cg(81, -1);
|
||||
}
|
||||
|
||||
void cmd_y() override {
|
||||
@@ -880,12 +880,12 @@ public:
|
||||
switch (cmd) {
|
||||
case 130:
|
||||
WAIT(2000);
|
||||
ags->load_cg(180, -1);
|
||||
load_cg(180, -1);
|
||||
|
||||
WAIT(2000);
|
||||
draw_box(0);
|
||||
ags->dest_screen = 1;
|
||||
ags->load_cg(173, -1);
|
||||
load_cg(173, -1);
|
||||
ags->dest_screen = 0;
|
||||
ags->gcopy(0x1ecd, 0x3a2a, 8, 60, 3);
|
||||
WAIT(667);
|
||||
@@ -1017,7 +1017,7 @@ public:
|
||||
// slowest). Not available in the Hint Disk.
|
||||
break;
|
||||
case 20:
|
||||
ags->load_cg(param, -1);
|
||||
load_cg(param, -1);
|
||||
break;
|
||||
default:
|
||||
exec_y(cmd, param);
|
||||
|
||||
@@ -445,7 +445,7 @@ void NACT_Sys2::cmd_g()
|
||||
page--;
|
||||
}
|
||||
}
|
||||
ags->load_cg(page, -1);
|
||||
load_cg(page, -1);
|
||||
|
||||
if (game_id.is(GameId::DALK_HINT)) {
|
||||
if(page == 3) {
|
||||
@@ -632,7 +632,7 @@ void NACT_Sys2::cmd_u()
|
||||
|
||||
TRACE("U %d,%d:", page, transparent);
|
||||
|
||||
ags->load_cg(page, transparent);
|
||||
load_cg(page, transparent);
|
||||
}
|
||||
|
||||
void NACT_Sys2::cmd_v()
|
||||
|
||||
@@ -250,7 +250,7 @@ void NACT_Sys3::cmd_g()
|
||||
|
||||
TRACE("G %d:", page);
|
||||
|
||||
ags->load_cg(page, -1);
|
||||
load_cg(page, -1);
|
||||
}
|
||||
|
||||
void NACT_Sys3::cmd_h()
|
||||
@@ -622,7 +622,7 @@ void NACT_Sys3::cmd_u()
|
||||
if (game_id.is_rance4x()) {
|
||||
transparent = (transparent == 28) ? 12 : transparent;
|
||||
}
|
||||
ags->load_cg(page, transparent);
|
||||
load_cg(page, transparent);
|
||||
}
|
||||
|
||||
void NACT_Sys3::cmd_v()
|
||||
@@ -806,12 +806,14 @@ void NACT_Sys3::exec_y(int cmd, int param)
|
||||
ags->fade_out(param * 16 * 1000 / 60, cmd == 43);
|
||||
break;
|
||||
case 45:
|
||||
ags->extract_palette = param ? true : false;
|
||||
if (param) {
|
||||
cg_flags |= CG_EXTRACT_PALETTE;
|
||||
} else {
|
||||
cg_flags &= ~CG_EXTRACT_PALETTE;
|
||||
}
|
||||
break;
|
||||
case 46:
|
||||
ags->get_palette = (param & 4) ? true : false;
|
||||
ags->extract_palette = (param & 2) ? true : false;
|
||||
ags->extract_cg = (param & 1) ? true : false;
|
||||
cg_flags = param & 7;
|
||||
break;
|
||||
case 60:
|
||||
ags->scroll = param - 400;
|
||||
@@ -840,7 +842,7 @@ void NACT_Sys3::exec_y(int cmd, int param)
|
||||
mouse_sence = param;
|
||||
break;
|
||||
case 72:
|
||||
ags->load_cursor(param);
|
||||
ags->load_cursor(param, cg_flags);
|
||||
break;
|
||||
case 73:
|
||||
ags->cursor_index = param;
|
||||
|
||||
@@ -94,3 +94,8 @@ void NACT::draw_box(int index)
|
||||
ags->box_line(ags->dest_screen, b.sx, b.sy, b.ex, b.ey, b.color);
|
||||
}
|
||||
}
|
||||
|
||||
void NACT::load_cg(int page, int transparent)
|
||||
{
|
||||
ags->load_cg(page, transparent, cg_flags);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user