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

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

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

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

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

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

本帖最后由 shane007 于 2023-9-4 18:48 编辑 $ j$ `1 \7 i0 t0 d7 i% N

0 [6 {9 B4 p0 S: h* W, H: D" P这是个opengl引擎的游戏,对opengl的初始化是在scream.exe里边完成的。
+ n, D' K0 w6 Z- W% Z" P" I* h$ D对于opengl的游戏我们主要关注glGenLists和glCallList这2个函数, X7 _2 j2 w  N9 d; l
7 w' C# \3 N/ k% T! }$ B2 g
) J& W4 c6 w3 C# Y7 u
glGenLists的调用有4处,前3处参数为1,应该不是。/ y2 V- j' X# D" s2 @7 U- ~: u0 p
一下是第四处代码,这里应该就是生成字体的地方。
  d5 a3 {+ \2 f" w* k- E+ `从代码里可以看出,字体材质长宽各是16各字符,共256个字符,此处要修改。8 R2 T5 v) c2 O% Y( d
  1. int sub_40BEB0()3 Y: N& o: C% x* o
  2. {7 M2 F( U1 A: p9 t7 [' \( S3 x
  3.   signed int v0; // ebx
    . Z* G" V& ^% K7 O( w
  4.   int v1; // ecx
    & P4 k" \2 A: U
  5.   float v2; // ST18_4
    ; Z; r# W* T' p5 W) t
  6.   float v3; // ST1C_4' \8 Y! b) ~/ I
  7.   float v4; // ST20_40 D( ]$ K! ]) C6 Q+ O
  8.   float v5; // ST24_4
    " |# i. l, V) {
  9.   int result; // eax3 l- ^; g% l& ^" y0 @( O
  10. " j% K/ {9 z; @& d' \
  11.   v0 = 0;8 W' F2 Z, ]# H% E; f% m: d$ h
  12.   dword_4DF5130 = glGenLists(272);
    * R' P1 R; E) f5 S) f
  13.   do# o6 t4 g" p5 b* n1 v. [
  14.   {
    ( c/ N3 D- @; O9 C
  15.     v2 = (double)(v0 % -16) * flt_483450;' Y" i  y8 y4 |/ z. q& W7 c3 [
  16.     v3 = (double)(v0 / 16) * flt_483450;% Z" m/ Y* p7 S6 u- h
  17.     glNewList(v1, v0 % 16, v0 + dword_4DF5130, 4864);+ a" s6 g* E- j4 |/ y7 P
  18.     glBegin(7);
    ( O7 _: H  A2 Y$ T, s
  19.     glTexCoord2f(LODWORD(v2), LODWORD(v3));
    7 f; q# w! m5 F; K4 k% Y" d
  20.     glVertex2i(0, 0);
    - `" \, r8 f( C+ S; O2 n! l  j/ R
  21.     v4 = v2 + flt_483450;4 u" ^) ]: Y+ N! d. a
  22.     glTexCoord2f(LODWORD(v4), LODWORD(v3));
    - i" m7 H  _$ A6 e1 L% \4 X
  23.     glVertex2i(16, 0);9 I, s( F- k; L+ C
  24.     v5 = v3 + flt_483454;
    & C8 m5 Q. h! z0 _' t
  25.     glTexCoord2f(LODWORD(v4), LODWORD(v5));
    ) \0 d/ ^' T; C$ s8 L8 ^
  26.     glVertex2i(16, 16);2 q1 c0 L8 K. l" e0 r( H
  27.     glTexCoord2f(LODWORD(v2), LODWORD(v5));
    9 y' V1 C0 B& t
  28.     glVertex2i(0, 16);" n9 Q" F# u/ M" X4 }  U9 h1 {
  29.     glEnd();
    9 R' q9 f3 P" _1 a; ]/ c
  30.     ++v0;
    9 D  m. R$ E( a' B$ U8 n
  31.     glTranslated(0, 1076101120, 0, 0, 0, 0);
    . p- N: u  e6 d( o4 O9 k2 d+ l
  32.     result = glEndList();( p  c. @/ ?* J; a8 W1 o- |4 l4 P
  33.   }
    / J# n& l4 h- v! L2 m
  34.   while ( v0 < 272 );0 a! a* S; N2 Q8 ?9 r: H
  35.   return result;- h; e& E1 o- E
  36. }
复制代码
' s5 ]3 q( Z$ s/ Y  U' C
4 l9 Z* I/ V6 W( m: @' w) n+ ?
对glCallList的调用只有以下一处,
5 W: c5 d/ ~+ w. V! Y; k这是显示单个字符还是字符串的方法,待以后再确认。  N6 E0 h' B; n' x! }* O$ g3 j" }
glCallLists(strlen(&v7), 5121, &v7);
+ K4 C- F  q" ^/ ]! Z5 @2 [5121为0x1401 ,即 GL_UNSIGNED_BYTE ,是单字节。7 V! G5 Z- i& E5 X

* Z* T  V7 c' J0 U
  1. #define GL_BYTE                           0x14009 }. [/ N4 R5 b, j# G3 P2 y8 [
  2. #define GL_UNSIGNED_BYTE                  0x1401' A2 L7 R# A$ C1 N
  3. #define GL_SHORT                          0x1402* r& w6 V0 W6 s1 h% H" ]
  4. #define GL_UNSIGNED_SHORT                 0x1403
    8 k5 w- b8 Z, [
  5. #define GL_INT                            0x1404: d$ c/ p& H1 Z$ ~5 ]5 _  ~
  6. #define GL_UNSIGNED_INT                   0x1405
    % |0 S1 r5 I! G
  7. #define GL_FLOAT                          0x1406# L5 T' w  l" W% D
  8. #define GL_2_BYTES                        0x1407
      K6 S' E! ]- Z; t
  9. #define GL_3_BYTES                        0x1408
    2 t. d: L; Z0 O; q4 C
  10. #define GL_4_BYTES                        0x1409
    0 S; E, }3 G, [# V
  11. #define GL_DOUBLE                         0x140A
复制代码
% o# ?, C& X/ e4 l% u

3 Y# `" ~. ]- L
  1. 4 K! U" r' T+ g8 D# N2 C5 I
  2. int __cdecl sub_40BFD0(signed int a1, int a2, int a3, int a4, char a5)
    # C/ w8 Q6 ^, ~8 h
  3. {
    / F7 a2 A6 V9 G0 S$ z
  4.   int v5; // ecx
    4 t9 t$ T' f# I) {# f
  5.   int result; // eax9 b0 h" b$ ]4 V
  6.   char v7; // [esp+18h] [ebp-118h]
    $ D# q; p1 s3 [/ X( _! W+ y
  7.   char *v8; // [esp+118h] [ebp-18h]+ U/ H! w7 t: I1 f
  8.   int v9; // [esp+11Ch] [ebp-14h]9 L% d9 s2 y! K4 r9 r1 z1 |5 P
  9.   int v10; // [esp+128h] [ebp-8h]* q9 X8 l5 Z2 q# A
  10. - Q$ O2 V% D: S4 r) U4 \- z% i1 e1 B
  11.   v10 = v5;# k6 [" w4 C( `9 i1 G
  12.   if ( a4 )
    2 q" V9 p8 t; V5 K* E
  13.   {
    9 z* l# A( {' Y0 i5 C
  14.     v8 = &a5;2 j3 L; l% m7 B
  15.     sub_41BA00(v5, a4);" a* M) W6 ^# B7 r7 W
  16.     v8 = 0;( L7 o5 v% A# \" C; D
  17.     glBlendFunc(770, 771);
    1 Y* j' L% e$ t# V5 y% q
  18.     glBindTexture(3553, dword_4DF3BC4[8 * a3]);
    , n1 @7 }5 y( e
  19.     glPushMatrix();/ ^% q- h7 w6 n
  20.     glLoadIdentity();
    ' J% S5 q! E% u$ M) ~. N8 u
  21.     v9 = a1;6 A2 f) T, B  p7 U: x
  22.     glTranslated(
    5 F# F7 u" p6 \" Y
  23.       COERCE_UNSIGNED_INT64((double)a1),
    9 c- S  `6 o6 v7 s9 W' l" p2 V
  24.       COERCE_UNSIGNED_INT64((double)a1) >> 32,
    8 O( c$ z( n; X( @
  25.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)),& r: q" Z3 F; w
  26.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)) >> 32,
    : Q. a: Q  i. H& b7 P) n
  27.       0,! C: N. D& \6 M$ o4 V8 J
  28.       0);
    $ K( l, ~/ P  w+ R2 ?
  29.     glPushAttrib(0x20000);
    . y8 x+ x' H' ^" C( W
  30.     glListBase(dword_4DF5130 + 16);% O  B2 O5 C, k' U% H/ J
  31.     glCallLists(strlen(&v7), 5121, &v7);% Q8 D. R* F' K3 T4 |; A7 M
  32.     glPopAttrib();
    4 m, z2 K( [4 `$ [3 Q( C- ?, T
  33.     result = glPopMatrix();' `3 e" x5 m9 \' _0 ?1 \3 @
  34.   }
    1 ]7 E9 A. L) b$ F: `1 K
  35.   return result;
    + G! q) M1 E, k: b2 F. `4 B  u  {* x
  36. }6 v# y; D( s* A# m
复制代码

- r9 L7 e- X" m! r3 M
4 x2 G' ^: x  ?3 w# z* k6 h, w7 S$ C( W$ B+ s# w+ c, ^/ s) z* E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

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