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

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

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

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

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

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

本帖最后由 shane007 于 2023-9-4 18:48 编辑 ! I1 L& f& }/ V- ~

( @. N3 V. ?  ~( X* s0 A这是个opengl引擎的游戏,对opengl的初始化是在scream.exe里边完成的。. u0 E/ h2 Y: n. C3 }4 Q
对于opengl的游戏我们主要关注glGenLists和glCallList这2个函数
. Z, T0 ~& Y6 K2 C1 s
3 ?, Z( i# z2 i: X
3 j5 X) A9 {, x# _glGenLists的调用有4处,前3处参数为1,应该不是。/ A! I7 z5 D2 D$ M2 E8 S
一下是第四处代码,这里应该就是生成字体的地方。
$ _2 X% b( L6 x3 w) @( Z从代码里可以看出,字体材质长宽各是16各字符,共256个字符,此处要修改。6 q$ {: e" o4 y5 S
  1. int sub_40BEB0()1 Y0 H& T9 L% N6 a- }
  2. {
    8 H3 y+ K" V  n3 R1 O, I
  3.   signed int v0; // ebx
    $ r$ A9 s. b" ]2 V1 g
  4.   int v1; // ecx
    4 z$ z3 W! a: V* T: J
  5.   float v2; // ST18_4
    8 Q+ U1 g, q8 L; U2 c
  6.   float v3; // ST1C_47 k  X8 C  r* P% b! N
  7.   float v4; // ST20_4( ~, E# _, H' g+ J# x
  8.   float v5; // ST24_45 Q, u( G; ]2 T) n' W  v
  9.   int result; // eax
      q  z! V; S/ B0 I  K4 {' m

  10. 0 v0 E0 r: K  S; h; `* y) Q/ P; y
  11.   v0 = 0;9 i3 @) Z. T, t' R  v
  12.   dword_4DF5130 = glGenLists(272);
    / m0 I- B, t0 V
  13.   do
    8 x+ |6 ]+ b0 e5 Z% y: ~6 c
  14.   {3 z8 o& Y3 C( e& r
  15.     v2 = (double)(v0 % -16) * flt_483450;
    9 y; V3 u( D# ~& v8 e0 Q8 m3 _& Y$ E0 N
  16.     v3 = (double)(v0 / 16) * flt_483450;- R- ?; D  N" C7 ^
  17.     glNewList(v1, v0 % 16, v0 + dword_4DF5130, 4864);; i, z4 D7 s, c/ K3 S; g# c. ^; I) M& y0 S
  18.     glBegin(7);6 A# _/ {- V+ r  G: N
  19.     glTexCoord2f(LODWORD(v2), LODWORD(v3));0 {/ E/ |2 |& _
  20.     glVertex2i(0, 0);) }9 ~8 b! @: {# ?/ ]: R
  21.     v4 = v2 + flt_483450;" h. @& t" L7 h3 j0 w+ I
  22.     glTexCoord2f(LODWORD(v4), LODWORD(v3));
    & a8 _/ y: Y0 O! u
  23.     glVertex2i(16, 0);
    ( l% b" _1 K: ^1 y7 ]
  24.     v5 = v3 + flt_483454;! c/ n9 Y4 ?! q$ Y1 |
  25.     glTexCoord2f(LODWORD(v4), LODWORD(v5));4 S+ T, g8 ?4 N" O: ^) P
  26.     glVertex2i(16, 16);; B4 U8 J0 A* P& K: N
  27.     glTexCoord2f(LODWORD(v2), LODWORD(v5));
    4 {  w1 q8 l+ h! d6 g
  28.     glVertex2i(0, 16);
    ( i, C0 m  N, e7 q9 s& A
  29.     glEnd();
    " ?8 D$ o5 h5 r1 Y* X
  30.     ++v0;
    ' _+ z3 J  B, L' Q" t4 I
  31.     glTranslated(0, 1076101120, 0, 0, 0, 0);
    & m9 U/ \/ P' V9 r; X! N$ Z
  32.     result = glEndList();
    ! w4 u2 V# I/ @
  33.   }& O. e9 @7 G5 K& p4 q% c; w
  34.   while ( v0 < 272 );
    4 c/ a! t; M& [# y
  35.   return result;
    . H  D' J4 d6 A5 R% _5 L
  36. }
复制代码

. Q4 F! |( o- I% }
4 M8 _- w$ I+ i& l: a对glCallList的调用只有以下一处,
" M2 _; k9 x5 z. p, H这是显示单个字符还是字符串的方法,待以后再确认。
) D& _+ V! E* t  b3 i" m+ o: k glCallLists(strlen(&v7), 5121, &v7);" K  j5 ]* T! m
5121为0x1401 ,即 GL_UNSIGNED_BYTE ,是单字节。; Z3 {. P$ }5 _: \2 L

: J8 [7 }- g3 _% d! o( x  H: N* N
  1. #define GL_BYTE                           0x1400
    , S) R0 \: Q3 B$ B& G, l% R7 ^( a
  2. #define GL_UNSIGNED_BYTE                  0x1401
    $ `8 W2 Y" N. U/ D$ p
  3. #define GL_SHORT                          0x1402
    ' h* r2 r( G: c) N7 @$ A) s& o2 G5 S- c
  4. #define GL_UNSIGNED_SHORT                 0x1403
    , z. y( D, A7 _0 K
  5. #define GL_INT                            0x1404
    - S6 F3 {9 r2 p/ D0 Y. i6 o
  6. #define GL_UNSIGNED_INT                   0x1405
    : V% S3 Y9 @- p- X; Y
  7. #define GL_FLOAT                          0x14068 A- ^( P1 }3 j2 d2 k0 F
  8. #define GL_2_BYTES                        0x1407  y" H7 t, A! @9 ?
  9. #define GL_3_BYTES                        0x1408
    . I7 A4 J1 X$ U) x% A# P
  10. #define GL_4_BYTES                        0x1409
    $ V4 b, l- q9 D- K
  11. #define GL_DOUBLE                         0x140A
复制代码

/ x+ C: B2 |6 _* D0 o  D" G) F: q6 K& c9 F+ @% X5 Y
  1. , }& u, N) x4 K4 l: ]3 |
  2. int __cdecl sub_40BFD0(signed int a1, int a2, int a3, int a4, char a5)
    ( [7 S' j# n- I% ]. L
  3. {
    9 Z6 L9 F" f# }. d% o+ t
  4.   int v5; // ecx+ H/ v. r' N7 a7 z
  5.   int result; // eax
    1 ^3 ?# q) |3 ^
  6.   char v7; // [esp+18h] [ebp-118h]
    : o3 k: K/ h, z/ e. R7 |
  7.   char *v8; // [esp+118h] [ebp-18h]
    * k: O/ R, Y7 L7 z
  8.   int v9; // [esp+11Ch] [ebp-14h]
    4 M. [' S4 u* m, A/ K
  9.   int v10; // [esp+128h] [ebp-8h]/ J4 Q9 E9 n7 u# y4 b% J1 Y

  10. ( q) q2 f' a: V0 z, [" `
  11.   v10 = v5;* f0 V. V3 `5 V6 z- w
  12.   if ( a4 )
    2 a0 c! x* }: L$ N; L
  13.   {
    6 i. b; j. Z8 X" i) J* W
  14.     v8 = &a5;, s* G5 r) `/ `" ?8 }; G
  15.     sub_41BA00(v5, a4);
    0 N7 B; }0 n0 S: b. }' L
  16.     v8 = 0;
    1 q& K0 D( a7 ~
  17.     glBlendFunc(770, 771);/ Y, e/ t0 e( ^1 @+ L
  18.     glBindTexture(3553, dword_4DF3BC4[8 * a3]);( B2 S! R0 p& R" G
  19.     glPushMatrix();
    2 c* Q* U: E: V! V& g
  20.     glLoadIdentity();1 [; j. p: u; y- S( Z% z. z! v& ]' X# |6 e
  21.     v9 = a1;8 \# Q  m% ?, H0 `6 h. G5 h& c
  22.     glTranslated(
    3 U1 s  E8 e# Y: G. o
  23.       COERCE_UNSIGNED_INT64((double)a1),
    * d: d! |1 p' T+ z8 X
  24.       COERCE_UNSIGNED_INT64((double)a1) >> 32,7 U0 Z  A$ x- J: c
  25.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)),2 w/ ~+ Q- \% X# d) G
  26.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)) >> 32,; v! m/ Y0 m6 w& k
  27.       0,
    6 g8 h" n0 o5 _3 t# B- n: |
  28.       0);9 v) E" @6 B( M6 ^' s
  29.     glPushAttrib(0x20000);
    " W$ W  Q1 @$ V5 N% \+ Z4 C. z
  30.     glListBase(dword_4DF5130 + 16);
    / l+ G& R6 i6 F; |
  31.     glCallLists(strlen(&v7), 5121, &v7);
    2 ~. O0 K2 T5 o
  32.     glPopAttrib();
    + K, w& {: W7 J. y
  33.     result = glPopMatrix();. ]# J- E7 F+ j# D4 A9 R
  34.   }
    * G( Z* A! M  K( K& C
  35.   return result;; I3 Y  O: ]/ O, R8 N- a$ e
  36. }
    % u+ o1 Y  v2 A' k
复制代码
" v5 T* N2 \* V0 Z! q6 a) ?" Z

- i$ R/ H1 R: K% v' Y8 c# l
4 o1 N4 E* b  ^; c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好1 很差劲很差劲
回复

使用道具 举报

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

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