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

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

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

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

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

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

本帖最后由 shane007 于 2023-9-4 18:48 编辑
' L2 @$ ^) B# o% f" }' E: H
/ R8 h8 c7 G- N$ I0 q这是个opengl引擎的游戏,对opengl的初始化是在scream.exe里边完成的。4 h4 M5 m; u2 h1 y
对于opengl的游戏我们主要关注glGenLists和glCallList这2个函数
4 }& h3 h+ ?/ u0 W: g
8 t% l( X5 z4 F& G- L$ f
- C3 Y- e2 a8 r6 G% k, |4 rglGenLists的调用有4处,前3处参数为1,应该不是。
3 B* M3 g( E9 k! D一下是第四处代码,这里应该就是生成字体的地方。) T# P( y8 L3 E1 T. [
从代码里可以看出,字体材质长宽各是16各字符,共256个字符,此处要修改。
8 D- P9 K( f" n# {2 l
  1. int sub_40BEB0()7 [0 X! z  Q$ j9 [6 _
  2. {
    5 A  W8 ?: c4 g' m
  3.   signed int v0; // ebx8 k) J. W8 P* |
  4.   int v1; // ecx
    0 w6 H% a& e, z+ _" s3 d! i( g
  5.   float v2; // ST18_44 H$ M' N+ h7 ^. z- r  _' z% E
  6.   float v3; // ST1C_4& ^! A+ Y' c( Y2 F1 g/ j) f8 J0 J
  7.   float v4; // ST20_4
    " j) x, i3 T% }2 O# ^) R0 A* ?& g
  8.   float v5; // ST24_4
    # h# S" I. X8 ~2 M
  9.   int result; // eax8 X, w& k+ F5 T! ]9 j- u* l
  10. 9 f9 d. G) Z) [: G7 @/ g8 V/ R
  11.   v0 = 0;$ O1 n7 l: Y4 ], s+ P; F3 W" d
  12.   dword_4DF5130 = glGenLists(272);
    5 A" }( i2 i, `# [3 O
  13.   do" n$ q6 ], b8 k; r- D* x
  14.   {
    # a! f  i: A1 Q) F/ q, e# Q
  15.     v2 = (double)(v0 % -16) * flt_483450;
    # [+ w; L: P: {4 f6 n
  16.     v3 = (double)(v0 / 16) * flt_483450;
    3 j: W0 @& r, _& O4 t% ?
  17.     glNewList(v1, v0 % 16, v0 + dword_4DF5130, 4864);) w. q2 P" y* h( G& L( v: ^, C
  18.     glBegin(7);" P( c% g5 X, @$ ~) }3 @% a$ i; K/ v
  19.     glTexCoord2f(LODWORD(v2), LODWORD(v3));+ O+ y/ U' y/ P' L
  20.     glVertex2i(0, 0);1 M  r# R  W. N8 v
  21.     v4 = v2 + flt_483450;
    # E3 y) ?9 _# r3 O
  22.     glTexCoord2f(LODWORD(v4), LODWORD(v3));
    3 l5 Q7 z$ r+ B. S9 m
  23.     glVertex2i(16, 0);
    8 Y* y8 U. p& r  j
  24.     v5 = v3 + flt_483454;6 e- ~4 V' E7 K- w$ v% U( L
  25.     glTexCoord2f(LODWORD(v4), LODWORD(v5));
    ' m; }/ J7 A3 I! e  n
  26.     glVertex2i(16, 16);
    + g$ i5 ]% G. z
  27.     glTexCoord2f(LODWORD(v2), LODWORD(v5));
    , M7 Z1 H0 n* y/ y: T! C& f5 e
  28.     glVertex2i(0, 16);
    2 }1 i) n2 F6 C6 z! }0 D9 m( e/ r
  29.     glEnd();0 f3 [& l' M. [; o* m& `. D
  30.     ++v0;% B6 E4 x% E$ a" o
  31.     glTranslated(0, 1076101120, 0, 0, 0, 0);
    1 E5 U- k# v8 r1 o4 K6 ^3 \
  32.     result = glEndList();
      G0 V8 T2 U' D* F; @% J9 X4 m4 ]* x
  33.   }
    ) G6 d6 Z7 t2 @0 A8 Q+ S& f
  34.   while ( v0 < 272 );3 s, G: G+ q0 H6 c
  35.   return result;
    9 A, F3 L7 q" q0 s; z6 k
  36. }
复制代码
& ]8 u3 F7 a" x& \, W* C6 j, o
8 [, W2 D; o0 a4 [# V
对glCallList的调用只有以下一处,& v3 E% P3 a7 a8 }
这是显示单个字符还是字符串的方法,待以后再确认。
  V0 W6 |: x' D3 i# ~' D glCallLists(strlen(&v7), 5121, &v7);5 B& I# ]; ]; a! N
5121为0x1401 ,即 GL_UNSIGNED_BYTE ,是单字节。
9 [6 h3 G$ \+ q4 p
9 z0 `& W: z9 q4 e9 h: a' o
  1. #define GL_BYTE                           0x14002 U( ~! A3 Z+ N( z
  2. #define GL_UNSIGNED_BYTE                  0x1401
    8 j3 M* H8 B  _) x+ Z  l) C9 S
  3. #define GL_SHORT                          0x1402
    9 Z: B) n+ I1 H) f5 ]# X# N$ c  R
  4. #define GL_UNSIGNED_SHORT                 0x1403
    : N9 I; q6 A% I. }
  5. #define GL_INT                            0x14040 o# x. ~1 K. k  T5 O
  6. #define GL_UNSIGNED_INT                   0x1405# e0 P% B" r$ F1 P
  7. #define GL_FLOAT                          0x1406
    , k$ T) E8 H% w1 `4 `) l
  8. #define GL_2_BYTES                        0x1407
    ' W: \2 |2 @: j& Y: v
  9. #define GL_3_BYTES                        0x14085 w0 n9 {; L8 ?2 Z' ?, W  ^# m0 R
  10. #define GL_4_BYTES                        0x1409
    # {# m2 s7 X0 N& H6 @' n4 G: z( L
  11. #define GL_DOUBLE                         0x140A
复制代码

5 C4 m7 h" A) }6 w+ l; s4 |( K& ^9 G2 E/ Q% L% N7 W3 [
  1. # g% E3 i( g( f3 I1 ~- I
  2. int __cdecl sub_40BFD0(signed int a1, int a2, int a3, int a4, char a5)( E$ ^- v1 E7 x: G0 `; o
  3. {+ ^: [1 g+ U4 ^+ w' i, m
  4.   int v5; // ecx% X; U& k9 `2 \
  5.   int result; // eax! @' V$ ]1 p% |8 s. g% \
  6.   char v7; // [esp+18h] [ebp-118h]
    / z7 q; h: ~* R; B( {7 d
  7.   char *v8; // [esp+118h] [ebp-18h]
    ! t* C7 r- d( a7 F: p
  8.   int v9; // [esp+11Ch] [ebp-14h]
    ! h& @/ A; G7 s: }# Q
  9.   int v10; // [esp+128h] [ebp-8h]; F7 W7 Z0 `: l4 Z* i/ \

  10. : G3 G6 r+ v/ M7 c2 _. _
  11.   v10 = v5;
    - T0 ?8 Q! S1 Z5 |2 `
  12.   if ( a4 )" _! o8 f$ n, S, X1 r" {- u6 c
  13.   {% A+ b2 y8 G0 L. U+ v
  14.     v8 = &a5;
    + ~/ o) }- ^+ i) {! d2 e
  15.     sub_41BA00(v5, a4);: g( c0 l4 k% _$ t6 f
  16.     v8 = 0;8 ^: [+ a' u0 \# `
  17.     glBlendFunc(770, 771);4 u9 @( S4 _# N, g
  18.     glBindTexture(3553, dword_4DF3BC4[8 * a3]);. ^  d" C" S+ U0 c
  19.     glPushMatrix();- c6 b: d4 j# C$ |" }  X
  20.     glLoadIdentity();. v& H3 t9 y2 n! J* }' H
  21.     v9 = a1;( E; p. O: ]) ?8 j0 t! |7 J
  22.     glTranslated() A# G2 q5 ?- z) W
  23.       COERCE_UNSIGNED_INT64((double)a1),7 s$ B! H7 \# ]& B0 q4 i! ]- h# }
  24.       COERCE_UNSIGNED_INT64((double)a1) >> 32,
    * g; I6 K6 R, ]0 X7 u# D$ w# k
  25.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)),
    ! R# U( @5 R2 m& g4 h
  26.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)) >> 32,; Z7 v5 l2 o2 V- q$ n8 `
  27.       0,
    * R  M! i% \2 v% c: B* E
  28.       0);4 H) v0 E+ V$ i4 g, y3 P$ N
  29.     glPushAttrib(0x20000);1 q: k( y; Z1 p
  30.     glListBase(dword_4DF5130 + 16);2 c7 o4 r( C/ U9 U$ Q( H2 A7 f% _
  31.     glCallLists(strlen(&v7), 5121, &v7);
    ! i. n( {: q" G; b- `' n
  32.     glPopAttrib();6 C4 v/ M0 K! j8 Q$ q( `
  33.     result = glPopMatrix();& U) @0 M2 n3 D" q, q
  34.   }
    ) s, T  g$ ?6 f" u* J- m1 U
  35.   return result;
    6 a7 N, |- I; y& t/ u5 |
  36. }2 H2 ~0 X+ K: @% ^4 X7 e) T+ j$ q
复制代码
" _0 H7 q7 O+ ~# \; U9 B
  d2 b) @( |. Y# h
. I: ?/ h1 i9 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

高级模式
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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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