aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/charset-fontdata.cpp
diff options
context:
space:
mode:
authorTravis Howell2009-03-08 08:45:21 +0000
committerTravis Howell2009-03-08 08:45:21 +0000
commit2620d6836c001f2f295cb6efd6beab78f5a3c50f (patch)
tree81d5055b74abfc7b0be105bee13b39e6505fce91 /engines/agos/charset-fontdata.cpp
parent7bfab75a0814d0655a2504bf4c461df0000da0e4 (diff)
downloadscummvm-rg350-2620d6836c001f2f295cb6efd6beab78f5a3c50f.tar.gz
scummvm-rg350-2620d6836c001f2f295cb6efd6beab78f5a3c50f.tar.bz2
scummvm-rg350-2620d6836c001f2f295cb6efd6beab78f5a3c50f.zip
Add initial support for Personal Nightmare.
Thanks to dreammaster for file decompression and icon decoding code. NOTE: setjmp/longjmp code will require conversion for portability. svn-id: r39216
Diffstat (limited to 'engines/agos/charset-fontdata.cpp')
-rw-r--r--engines/agos/charset-fontdata.cpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/engines/agos/charset-fontdata.cpp b/engines/agos/charset-fontdata.cpp
index 8d058c3bfc..6f26c566a4 100644
--- a/engines/agos/charset-fontdata.cpp
+++ b/engines/agos/charset-fontdata.cpp
@@ -1767,6 +1767,107 @@ static const byte english_elvira1Font[] = {
0x00, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x00,
};
+static const byte english_pnFont[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x00,
+ 0x00, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x24, 0x7E, 0x24, 0x24, 0x7E, 0x24, 0x00,
+ 0x00, 0x08, 0x3E, 0x28, 0x3E, 0x0A, 0x3E, 0x08,
+ 0x00, 0x62, 0x64, 0x08, 0x10, 0x26, 0x46, 0x00,
+ 0x00, 0x10, 0x28, 0x10, 0x2A, 0x44, 0x3A, 0x00,
+ 0x00, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x00,
+ 0x00, 0x20, 0x10, 0x10, 0x10, 0x10, 0x20, 0x00,
+ 0x00, 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14, 0x00,
+ 0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x10,
+ 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
+ 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+ 0x00, 0x3C, 0x46, 0x4A, 0x52, 0x62, 0x3C, 0x00,
+ 0x00, 0x18, 0x28, 0x08, 0x08, 0x08, 0x3E, 0x00,
+ 0x00, 0x3C, 0x42, 0x02, 0x3C, 0x40, 0x7E, 0x00,
+ 0x00, 0x3C, 0x42, 0x0C, 0x02, 0x42, 0x3C, 0x00,
+ 0x00, 0x08, 0x18, 0x28, 0x48, 0x7E, 0x08, 0x00,
+ 0x00, 0x7E, 0x40, 0x7C, 0x02, 0x42, 0x3C, 0x00,
+ 0x00, 0x3C, 0x40, 0x7C, 0x42, 0x42, 0x3C, 0x00,
+ 0x00, 0x7E, 0x02, 0x04, 0x08, 0x10, 0x10, 0x00,
+ 0x00, 0x3C, 0x42, 0x3C, 0x42, 0x42, 0x3C, 0x00,
+ 0x00, 0x3C, 0x42, 0x42, 0x3E, 0x02, 0x3C, 0x00,
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x10, 0x20,
+ 0x00, 0x00, 0x04, 0x08, 0x10, 0x08, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x10, 0x08, 0x04, 0x08, 0x10, 0x00,
+ 0x00, 0x3C, 0x42, 0x04, 0x08, 0x00, 0x08, 0x00,
+ 0x00, 0x3C, 0x4A, 0x56, 0x5E, 0x40, 0x3C, 0x00,
+ 0x00, 0x3C, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x00,
+ 0x00, 0x7C, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x00,
+ 0x00, 0x3C, 0x42, 0x40, 0x40, 0x42, 0x3C, 0x00,
+ 0x00, 0x78, 0x44, 0x42, 0x42, 0x44, 0x78, 0x00,
+ 0x00, 0x7E, 0x40, 0x7C, 0x40, 0x40, 0x7E, 0x00,
+ 0x00, 0x7E, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x00,
+ 0x00, 0x3C, 0x42, 0x40, 0x4E, 0x42, 0x3C, 0x00,
+ 0x00, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00,
+ 0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00,
+ 0x00, 0x02, 0x02, 0x02, 0x42, 0x42, 0x3C, 0x00,
+ 0x00, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x00,
+ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x00,
+ 0x00, 0x42, 0x66, 0x5A, 0x42, 0x42, 0x42, 0x00,
+ 0x00, 0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x00,
+ 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00,
+ 0x00, 0x7C, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x00,
+ 0x00, 0x3C, 0x42, 0x42, 0x52, 0x4A, 0x3C, 0x00,
+ 0x00, 0x7C, 0x42, 0x42, 0x7C, 0x44, 0x42, 0x00,
+ 0x00, 0x3C, 0x40, 0x3C, 0x02, 0x42, 0x3C, 0x00,
+ 0x00, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00,
+ 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00,
+ 0x00, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00,
+ 0x00, 0x42, 0x42, 0x42, 0x42, 0x5A, 0x24, 0x00,
+ 0x00, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x00,
+ 0x00, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x00,
+ 0x00, 0x7E, 0x04, 0x08, 0x10, 0x20, 0x7E, 0x00,
+ 0x00, 0x0E, 0x08, 0x08, 0x08, 0x08, 0x0E, 0x00,
+ 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x00,
+ 0x00, 0x70, 0x10, 0x10, 0x10, 0x10, 0x70, 0x00,
+ 0x00, 0x10, 0x38, 0x54, 0x10, 0x10, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x1C, 0x22, 0x78, 0x20, 0x20, 0x7E, 0x00,
+ 0x00, 0x00, 0x38, 0x04, 0x3C, 0x44, 0x3C, 0x00,
+ 0x00, 0x20, 0x20, 0x3C, 0x22, 0x22, 0x3C, 0x00,
+ 0x00, 0x00, 0x1C, 0x20, 0x20, 0x20, 0x1C, 0x00,
+ 0x00, 0x04, 0x04, 0x3C, 0x44, 0x44, 0x3C, 0x00,
+ 0x00, 0x00, 0x38, 0x44, 0x78, 0x40, 0x3C, 0x00,
+ 0x00, 0x0C, 0x10, 0x18, 0x10, 0x10, 0x10, 0x00,
+ 0x00, 0x00, 0x3C, 0x44, 0x44, 0x3C, 0x04, 0x38,
+ 0x00, 0x40, 0x40, 0x78, 0x44, 0x44, 0x44, 0x00,
+ 0x00, 0x10, 0x00, 0x30, 0x10, 0x10, 0x38, 0x00,
+ 0x00, 0x04, 0x00, 0x04, 0x04, 0x04, 0x24, 0x18,
+ 0x00, 0x20, 0x28, 0x30, 0x30, 0x28, 0x24, 0x00,
+ 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x00,
+ 0x00, 0x00, 0x68, 0x54, 0x54, 0x54, 0x54, 0x00,
+ 0x00, 0x00, 0x78, 0x44, 0x44, 0x44, 0x44, 0x00,
+ 0x00, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+ 0x00, 0x00, 0x78, 0x44, 0x44, 0x78, 0x40, 0x40,
+ 0x00, 0x00, 0x3C, 0x44, 0x44, 0x3C, 0x04, 0x06,
+ 0x00, 0x00, 0x1C, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x00, 0x00, 0x38, 0x40, 0x38, 0x04, 0x78, 0x00,
+ 0x00, 0x10, 0x38, 0x10, 0x10, 0x10, 0x0C, 0x00,
+ 0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x38, 0x00,
+ 0x00, 0x00, 0x44, 0x44, 0x28, 0x28, 0x10, 0x00,
+ 0x00, 0x00, 0x44, 0x54, 0x54, 0x54, 0x28, 0x00,
+ 0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+ 0x00, 0x00, 0x44, 0x44, 0x44, 0x3C, 0x04, 0x38,
+ 0x00, 0x00, 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00,
+ 0x00, 0x0E, 0x08, 0x30, 0x08, 0x08, 0x0E, 0x00,
+ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+ 0x00, 0x70, 0x10, 0x0C, 0x10, 0x10, 0x70, 0x00,
+ 0x00, 0x14, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3C, 0x42, 0x99, 0xA1, 0xA1, 0x99, 0x42, 0x3C,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
void AGOSEngine::windowDrawChar(WindowBlock *window, uint x, uint y, byte chr) {
const byte *src;
byte color, *dst;
@@ -1851,6 +1952,12 @@ void AGOSEngine::windowDrawChar(WindowBlock *window, uint x, uint y, byte chr) {
w = 6;
src = english_elvira1Font + (chr - 32) * 8;
+ } else {
+ dst = (byte *)screen->pixels + y * _dxSurfacePitch + x + window->textColumnOffset;
+ h = 8;
+ w = 8;
+
+ src = english_pnFont + (chr - 32) * 8;
}
color = window->textColor;