aboutsummaryrefslogtreecommitdiff
path: root/tools/create_drascula/create_drascula.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2008-06-08 21:58:20 +0000
committerEugene Sandulenko2008-06-08 21:58:20 +0000
commite62b1ed9d84bd66ceac829ec34fdec0c83731034 (patch)
tree9733d5450486204d2827777d89be9a0fcd0f4294 /tools/create_drascula/create_drascula.cpp
parent458c7185d92a9e5ac53663733043c8b73e964f4e (diff)
downloadscummvm-rg350-e62b1ed9d84bd66ceac829ec34fdec0c83731034.tar.gz
scummvm-rg350-e62b1ed9d84bd66ceac829ec34fdec0c83731034.tar.bz2
scummvm-rg350-e62b1ed9d84bd66ceac829ec34fdec0c83731034.zip
Proper texts alignment.
svn-id: r32621
Diffstat (limited to 'tools/create_drascula/create_drascula.cpp')
-rw-r--r--tools/create_drascula/create_drascula.cpp249
1 files changed, 155 insertions, 94 deletions
diff --git a/tools/create_drascula/create_drascula.cpp b/tools/create_drascula/create_drascula.cpp
index 14e50165d0..856405dbff 100644
--- a/tools/create_drascula/create_drascula.cpp
+++ b/tools/create_drascula/create_drascula.cpp
@@ -52,9 +52,12 @@ static void writeUint16BE(FILE *fp, uint16 value) {
int main(int argc, char *argv[]) {
FILE* outFile;
int i, lang;
- int len, pad;
+ int len, len1, pad;
uint8 padBuf[DATAALIGNMENT];
+ for (i = 0; i < DATAALIGNMENT; i++)
+ padBuf[i] = 0;
+
outFile = fopen("drascula.dat", "wb");
// Write header
@@ -165,27 +168,29 @@ int main(int argc, char *argv[]) {
writeUint16BE(outFile, roomActions[i].speechID);
}
- for (i = 0; i < DATAALIGNMENT; i++)
- padBuf[i] = 0;
-
// langs
writeUint16BE(outFile, NUM_LANGS);
// Write _text
writeUint16BE(outFile, NUM_TEXT);
+
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXT; i++) {
- len += strlen(_text[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_text[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXT; i++) {
- writeUint16BE(outFile, strlen(_text[lang][i]));
- fwrite(_text[lang][i], strlen(_text[lang][i]), 1, outFile);
+ len = strlen(_text[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_text[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
}
@@ -193,17 +198,21 @@ int main(int argc, char *argv[]) {
// Write _textd
writeUint16BE(outFile, NUM_TEXTD);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTD; i++) {
- len += strlen(_textd[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textd[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTD; i++) {
- writeUint16BE(outFile, strlen(_textd[lang][i]));
- fwrite(_textd[lang][i], strlen(_textd[lang][i]), 1, outFile);
+ len = strlen(_textd[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textd[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -212,17 +221,21 @@ int main(int argc, char *argv[]) {
// Write _textb
writeUint16BE(outFile, NUM_TEXTB);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTB; i++) {
- len += strlen(_textb[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textb[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTB; i++) {
- writeUint16BE(outFile, strlen(_textb[lang][i]));
- fwrite(_textb[lang][i], strlen(_textb[lang][i]), 1, outFile);
+ len = strlen(_textb[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textb[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -231,17 +244,21 @@ int main(int argc, char *argv[]) {
// Write _textbj
writeUint16BE(outFile, NUM_TEXTBJ);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTBJ; i++) {
- len += strlen(_textbj[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textbj[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTBJ; i++) {
- writeUint16BE(outFile, strlen(_textbj[lang][i]));
- fwrite(_textbj[lang][i], strlen(_textbj[lang][i]), 1, outFile);
+ len = strlen(_textbj[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textbj[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -250,17 +267,21 @@ int main(int argc, char *argv[]) {
// Write _texte
writeUint16BE(outFile, NUM_TEXTE);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTE; i++) {
- len += strlen(_texte[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_texte[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTE; i++) {
- writeUint16BE(outFile, strlen(_texte[lang][i]));
- fwrite(_texte[lang][i], strlen(_texte[lang][i]), 1, outFile);
+ len = strlen(_texte[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_texte[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -269,17 +290,21 @@ int main(int argc, char *argv[]) {
// Write _texti
writeUint16BE(outFile, NUM_TEXTI);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTI; i++) {
- len += strlen(_texti[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_texti[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTI; i++) {
- writeUint16BE(outFile, strlen(_texti[lang][i]));
- fwrite(_texti[lang][i], strlen(_texti[lang][i]), 1, outFile);
+ len = strlen(_texti[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_texti[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -288,17 +313,21 @@ int main(int argc, char *argv[]) {
// Write _textl
writeUint16BE(outFile, NUM_TEXTL);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTL; i++) {
- len += strlen(_textl[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textl[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTL; i++) {
- writeUint16BE(outFile, strlen(_textl[lang][i]));
- fwrite(_textl[lang][i], strlen(_textl[lang][i]), 1, outFile);
+ len = strlen(_textl[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textl[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -307,17 +336,21 @@ int main(int argc, char *argv[]) {
// Write _textp
writeUint16BE(outFile, NUM_TEXTP);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTP; i++) {
- len += strlen(_textp[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textp[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTP; i++) {
- writeUint16BE(outFile, strlen(_textp[lang][i]));
- fwrite(_textp[lang][i], strlen(_textp[lang][i]), 1, outFile);
+ len = strlen(_textp[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textp[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -326,17 +359,21 @@ int main(int argc, char *argv[]) {
// Write _textt
writeUint16BE(outFile, NUM_TEXTT);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTT; i++) {
- len += strlen(_textt[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textt[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTT; i++) {
- writeUint16BE(outFile, strlen(_textt[lang][i]));
- fwrite(_textt[lang][i], strlen(_textt[lang][i]), 1, outFile);
+ len = strlen(_textt[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textt[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -345,17 +382,21 @@ int main(int argc, char *argv[]) {
// Write _textvb
writeUint16BE(outFile, NUM_TEXTVB);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTVB; i++) {
- len += strlen(_textvb[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textvb[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTVB; i++) {
- writeUint16BE(outFile, strlen(_textvb[lang][i]));
- fwrite(_textvb[lang][i], strlen(_textvb[lang][i]), 1, outFile);
+ len = strlen(_textvb[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textvb[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -364,17 +405,21 @@ int main(int argc, char *argv[]) {
// Write _textsys
writeUint16BE(outFile, NUM_TEXTSYS);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTSYS; i++) {
- len += strlen(_textsys[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textsys[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTSYS; i++) {
- writeUint16BE(outFile, strlen(_textsys[lang][i]));
- fwrite(_textsys[lang][i], strlen(_textsys[lang][i]), 1, outFile);
+ len = strlen(_textsys[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textsys[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -383,17 +428,21 @@ int main(int argc, char *argv[]) {
// Write _texthis
writeUint16BE(outFile, NUM_TEXTHIS);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTHIS; i++) {
- len += strlen(_texthis[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_texthis[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTHIS; i++) {
- writeUint16BE(outFile, strlen(_texthis[lang][i]));
- fwrite(_texthis[lang][i], strlen(_texthis[lang][i]), 1, outFile);
+ len = strlen(_texthis[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_texthis[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -402,17 +451,21 @@ int main(int argc, char *argv[]) {
// Write _textverbs
writeUint16BE(outFile, NUM_TEXTVERBS);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTVERBS; i++) {
- len += strlen(_textverbs[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textverbs[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTVERBS; i++) {
- writeUint16BE(outFile, strlen(_textverbs[lang][i]));
- fwrite(_textverbs[lang][i], strlen(_textverbs[lang][i]), 1, outFile);
+ len = strlen(_textverbs[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textverbs[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -421,17 +474,21 @@ int main(int argc, char *argv[]) {
// Write _textmisc
writeUint16BE(outFile, NUM_TEXTMISC);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTMISC; i++) {
- len += strlen(_textmisc[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textmisc[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTMISC; i++) {
- writeUint16BE(outFile, strlen(_textmisc[lang][i]));
- fwrite(_textmisc[lang][i], strlen(_textmisc[lang][i]), 1, outFile);
+ len = strlen(_textmisc[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textmisc[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}
@@ -440,17 +497,21 @@ int main(int argc, char *argv[]) {
// Write _textd1
writeUint16BE(outFile, NUM_TEXTD1);
for (lang = 0; lang < NUM_LANGS; lang++) {
- len = 0;
+ len = 2;
for (i = 0; i < NUM_TEXTD1; i++) {
- len += strlen(_textd1[lang][i]) + 2;
- pad = len % DATAALIGNMENT;
- len += pad;
+ len1 = strlen(_textd1[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len1 + 2) % DATAALIGNMENT;
+ len += 2 + len1 + pad;
}
writeUint16BE(outFile, len);
+ writeUint16BE(outFile, 0); // padding
for (i = 0; i < NUM_TEXTD1; i++) {
- writeUint16BE(outFile, strlen(_textd1[lang][i]));
- fwrite(_textd1[lang][i], strlen(_textd1[lang][i]), 1, outFile);
+ len = strlen(_textd1[lang][i]) + 1;
+ pad = DATAALIGNMENT - (len + 2) % DATAALIGNMENT;
+
+ writeUint16BE(outFile, len + pad + 2);
+ fwrite(_textd1[lang][i], len, 1, outFile);
fwrite(padBuf, pad, 1, outFile);
}