设为首页收藏本站官方微博

建议 【Opengl游戏汉化 #4】 惊恐鬼屋导演剪辑版(Scratches Directors Cut)字幕显...

  [复制链接]
查看: 892|回复: 3
打印 上一主题 下一主题

[建议] 【Opengl游戏汉化 #4】 惊恐鬼屋导演剪辑版(Scratches Directors Cut)字幕显...

跳转到指定楼层
楼主
发表于 2023-8-27 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【Opengl游戏汉化 #4】 惊恐鬼屋导演剪辑版(Scratches Directors Cut)字幕显...

本帖最后由 shane007 于 2023-9-4 18:48 编辑
/ L% I, v/ U" @/ \! L* {- f! Z/ X1 C7 q- O* [
这是个opengl引擎的游戏,对opengl的初始化是在scream.exe里边完成的。
' q! c; s2 n+ w; W对于opengl的游戏我们主要关注glGenLists和glCallList这2个函数, b1 H3 P1 F4 j1 i# M

4 D/ S6 s; d( U) ^7 J
( L2 B" s, a6 n" QglGenLists的调用有4处,前3处参数为1,应该不是。
- E' @" Z+ Y8 _" ^7 h一下是第四处代码,这里应该就是生成字体的地方。; G& j& H( `) _( N5 E- B
从代码里可以看出,字体材质长宽各是16各字符,共256个字符,此处要修改。( R+ p( ?3 B# l3 @8 k8 J
  1. int sub_40BEB0()$ u# h7 }) |" |/ e8 S+ h' ]) n
  2. {
    # e# I2 E# L' @4 B
  3.   signed int v0; // ebx
    2 c; F# M3 g; a
  4.   int v1; // ecx
    . B2 ]* R8 C8 o; e( k9 D
  5.   float v2; // ST18_4+ R0 H* W0 G9 B. Q
  6.   float v3; // ST1C_44 {5 ^2 B. u# U3 g7 G
  7.   float v4; // ST20_4
    / ~6 ]) o" k  G
  8.   float v5; // ST24_4
      M# ^+ r/ o: [7 D3 i9 F
  9.   int result; // eax, C7 U) I" i1 }1 i: ]$ x
  10. 3 i- |( B* d  E, O
  11.   v0 = 0;9 y/ h7 R" ?6 i! n
  12.   dword_4DF5130 = glGenLists(272);
    9 S$ f5 i% Y4 U2 r- G
  13.   do. v( C3 R+ C" }) M4 t# j
  14.   {
    1 a* A. K7 c' H' Z; H$ ^0 ~1 C6 K
  15.     v2 = (double)(v0 % -16) * flt_483450;  I, |' e8 z4 J8 P$ y; B
  16.     v3 = (double)(v0 / 16) * flt_483450;
    % Z1 }7 ?9 e9 [
  17.     glNewList(v1, v0 % 16, v0 + dword_4DF5130, 4864);
    $ ?2 H2 [; w" m/ i
  18.     glBegin(7);. w4 W# ?, s5 Z' L, C
  19.     glTexCoord2f(LODWORD(v2), LODWORD(v3));
    ) }& i- ]$ |- ^, b; n4 [6 d
  20.     glVertex2i(0, 0);  v5 @+ x, E5 L8 E' o$ A
  21.     v4 = v2 + flt_483450;
    ) o2 u; H/ c3 _! @! r
  22.     glTexCoord2f(LODWORD(v4), LODWORD(v3));
    : g2 q! ?) O" G$ H6 `
  23.     glVertex2i(16, 0);
    1 t3 n/ l' t, T5 J
  24.     v5 = v3 + flt_483454;
    # C0 L7 R" ~4 a- r3 r* ^- E% N
  25.     glTexCoord2f(LODWORD(v4), LODWORD(v5));
      C! k3 h8 _6 F: g. d3 C1 P; |
  26.     glVertex2i(16, 16);, w9 N$ R1 h7 u" s' V
  27.     glTexCoord2f(LODWORD(v2), LODWORD(v5));- o, {% R2 ^/ i3 X1 q1 d
  28.     glVertex2i(0, 16);& x8 {- U/ X5 Z0 _, t5 F+ n
  29.     glEnd();
    3 o8 o5 W' R( g. ]) c* x
  30.     ++v0;7 C# s3 s6 u. Z& a0 {3 T" |9 Y
  31.     glTranslated(0, 1076101120, 0, 0, 0, 0);9 L( Z# ^- T8 x  }6 o8 s/ s. [
  32.     result = glEndList();; g# k. I. R/ I: z
  33.   }
    ) {* D3 C3 H1 P% u
  34.   while ( v0 < 272 );5 \3 e8 v! D: ~; [
  35.   return result;8 ~/ |: O9 M+ r* r# Z3 r: N
  36. }
复制代码
* Q  Y6 {. n) p) D* l

- A! E( I2 a. y" U/ D对glCallList的调用只有以下一处,
* O3 b2 p& d3 H. E这是显示单个字符还是字符串的方法,待以后再确认。
) y- [9 F) m7 K3 X glCallLists(strlen(&v7), 5121, &v7);% ]- A0 i6 b! z, ~8 N
5121为0x1401 ,即 GL_UNSIGNED_BYTE ,是单字节。9 o/ ?* G& w7 k2 o+ Y* h

1 o5 i" B% t3 u/ Q# V1 W/ G
  1. #define GL_BYTE                           0x1400" K6 X2 o. j2 S5 f7 Q2 W
  2. #define GL_UNSIGNED_BYTE                  0x1401# c  ~7 i+ T; B/ T- Q) J$ d
  3. #define GL_SHORT                          0x14028 U' ?; v( H1 M
  4. #define GL_UNSIGNED_SHORT                 0x14032 N' C- ?$ y- N3 O* z% j0 c. Y' G
  5. #define GL_INT                            0x1404
    1 |% I( ^$ G( K, ]. g/ l% d
  6. #define GL_UNSIGNED_INT                   0x1405
    + F9 I1 t! M5 }1 ?- s! }. S( _
  7. #define GL_FLOAT                          0x1406
    / J! _# Q3 n. Q) h2 [: `
  8. #define GL_2_BYTES                        0x1407
    9 i. o+ v2 T5 s
  9. #define GL_3_BYTES                        0x1408# o  _% q7 ?1 D* O
  10. #define GL_4_BYTES                        0x1409
    4 N& D8 [+ n8 n$ F5 x3 |: c- n
  11. #define GL_DOUBLE                         0x140A
复制代码

; F0 y9 b  R: p$ R+ d( ?  q( E8 E3 \* T: p0 h

  1. 5 i+ n% V1 a; U1 }
  2. int __cdecl sub_40BFD0(signed int a1, int a2, int a3, int a4, char a5)& B  a- v+ R- ]* N7 m9 f9 g" u
  3. {9 ^8 V" ~9 q) h0 E# \4 ~% f
  4.   int v5; // ecx2 l  i! [) f, q" n  M0 o
  5.   int result; // eax/ Z- z* e% n1 ~- X/ B
  6.   char v7; // [esp+18h] [ebp-118h]
    , ], j+ Y/ e9 l- N
  7.   char *v8; // [esp+118h] [ebp-18h]( k1 M" I0 F  T5 n/ n
  8.   int v9; // [esp+11Ch] [ebp-14h]
    . ^5 i7 r# {" h. K
  9.   int v10; // [esp+128h] [ebp-8h]
    + I9 p+ k6 L$ {) ?8 N+ s" N
  10. 6 N, j3 V4 y0 h% u3 Q; K
  11.   v10 = v5;
    2 P! @1 {* j. i+ |5 Q0 G
  12.   if ( a4 )* S9 @0 ]. W: {7 b# I* J$ [
  13.   {5 R' R( N, s, a  _' w8 m& I
  14.     v8 = &a5;
    " ?  `4 I; g: `/ d$ |
  15.     sub_41BA00(v5, a4);6 x: r& }+ G0 a
  16.     v8 = 0;: D0 T' V8 O7 x: n9 b! d
  17.     glBlendFunc(770, 771);+ l5 `5 j' _4 t6 O( H
  18.     glBindTexture(3553, dword_4DF3BC4[8 * a3]);
    9 @! Y, e% ?5 c8 A
  19.     glPushMatrix();
      Q8 [/ j/ n, A1 r
  20.     glLoadIdentity();: `% z8 x0 g9 {# W( z! c3 b1 {
  21.     v9 = a1;
    . s0 b( ]4 }9 j9 y, A
  22.     glTranslated(
    ( `" F9 B# \, J' C1 U0 {9 j% M
  23.       COERCE_UNSIGNED_INT64((double)a1),
    6 ]' e3 M. ^" |9 k# x7 f3 c
  24.       COERCE_UNSIGNED_INT64((double)a1) >> 32,
    + B/ E7 d* x( ]. j, Y! a
  25.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)),! Q; Y! g( H- ^* Q$ d
  26.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)) >> 32,4 }; k6 g7 @) I  S
  27.       0,
    , t6 W( _4 n9 E1 E4 D. X, n7 ?5 L
  28.       0);* d7 g4 l/ U; z2 p8 M
  29.     glPushAttrib(0x20000);
    0 F2 _% n" L3 R  {3 V5 H
  30.     glListBase(dword_4DF5130 + 16);7 S" w% B& {0 B# q( s
  31.     glCallLists(strlen(&v7), 5121, &v7);
    0 C) l9 n! T3 U5 C1 h+ P% T
  32.     glPopAttrib();
    9 H3 _6 o# |% z; F( Z
  33.     result = glPopMatrix();3 g# C; b8 N5 Z# E' p! `8 D& U8 |: h
  34.   }
    % n  A+ g4 F: _; V$ J. H
  35.   return result;
    7 i2 q# o6 f, D1 P: W  j7 b/ g  j
  36. }
    8 k# G9 p1 @/ L7 g3 U9 j/ i
复制代码

" n0 a, I/ R2 D
. A8 R9 `: @7 U' K3 k# h; G6 [3 g, N% q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好1 很差劲很差劲
回复

使用道具 举报

沙发
 楼主| 发表于 2023-9-4 18:49 | 只看该作者
顶上来,顶上来
回复 支持 反对

使用道具 举报

板凳
发表于 2024-8-4 23:27 | 只看该作者
这项目得有十几年了吧,还有戏吗?
回复 支持 反对

使用道具 举报

地板
发表于 2024-9-4 15:27 | 只看该作者
会不会很恐怖很吓人啊
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表