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

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

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

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

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

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

本帖最后由 shane007 于 2023-9-4 18:48 编辑
( c2 K. d' v- t6 m
8 S3 a/ H; n' Z9 C. u这是个opengl引擎的游戏,对opengl的初始化是在scream.exe里边完成的。
: t) O+ a2 M- l4 U, r& n3 w对于opengl的游戏我们主要关注glGenLists和glCallList这2个函数
6 w- m; V8 e4 D( L0 {! g" N: b/ {, ]' N  N

- E0 R! {) h% K( U0 JglGenLists的调用有4处,前3处参数为1,应该不是。
# V- B2 N+ I; V3 l' D一下是第四处代码,这里应该就是生成字体的地方。9 y; i  H  P4 f" W# {
从代码里可以看出,字体材质长宽各是16各字符,共256个字符,此处要修改。5 p- B( n* Q! X
  1. int sub_40BEB0()% ?6 m* B$ r1 v; ]4 o$ G
  2. {$ l4 p$ L! j0 g2 {
  3.   signed int v0; // ebx# Q4 }5 R+ A) ~4 d0 f' Y
  4.   int v1; // ecx" w( C& S, }. K
  5.   float v2; // ST18_4
    : {' R# Q, A5 h7 T! p
  6.   float v3; // ST1C_4
    6 Z1 a$ F* L; ^/ I; j
  7.   float v4; // ST20_4
    $ v# Y9 M: V/ C, m
  8.   float v5; // ST24_4
    0 D. M. R8 o* d! ?. X( R+ R$ i2 F
  9.   int result; // eax* x) X* M3 j! p6 P) h' {% j
  10. 3 P9 \" u3 R4 j6 A3 }# T& x1 o
  11.   v0 = 0;
    ; b5 j; V/ y# L; u. p" D# `" l
  12.   dword_4DF5130 = glGenLists(272);
    ! E" y8 \: y& l4 K1 P' k  M$ [
  13.   do; s4 n# I" M$ y
  14.   {" w4 o- E: g3 J9 E7 N- ^& T
  15.     v2 = (double)(v0 % -16) * flt_483450;9 G. d8 j. ~% Z2 Z7 o+ ?, W" @
  16.     v3 = (double)(v0 / 16) * flt_483450;
    $ y% d1 O4 y, [, |- y$ D
  17.     glNewList(v1, v0 % 16, v0 + dword_4DF5130, 4864);( K! P7 e# }# U6 ^  ]: i
  18.     glBegin(7);
    ( r. h; q1 j: ^, D
  19.     glTexCoord2f(LODWORD(v2), LODWORD(v3));
    - d# R; n( q& }% `* D
  20.     glVertex2i(0, 0);3 a7 c) E& X- K1 E% f7 P3 W2 G7 Y4 B
  21.     v4 = v2 + flt_483450;( r, W3 T! c2 H( P4 j
  22.     glTexCoord2f(LODWORD(v4), LODWORD(v3));
    8 @6 g3 H/ N8 D3 R
  23.     glVertex2i(16, 0);
    2 ~8 P- E/ ]6 O* W% a% `0 ]9 E" h
  24.     v5 = v3 + flt_483454;
    1 F+ H6 @( X2 J  n  d6 I5 w
  25.     glTexCoord2f(LODWORD(v4), LODWORD(v5));
    * ~' y; `! h: O: ], T% U/ |; J
  26.     glVertex2i(16, 16);
    ' k0 |6 a- _, z: R1 j
  27.     glTexCoord2f(LODWORD(v2), LODWORD(v5));. t: g4 H7 U# s4 f) ]6 l
  28.     glVertex2i(0, 16);) d. C$ n$ C  I) o+ j5 m
  29.     glEnd();0 `& ^, A# c7 {4 V5 `! s
  30.     ++v0;4 Z( M* p" ?. i
  31.     glTranslated(0, 1076101120, 0, 0, 0, 0);
    / Y4 \+ ?0 g: {: V
  32.     result = glEndList();
    ; q2 u" u# a* n" G. i
  33.   }8 k/ N0 v  \: O# g
  34.   while ( v0 < 272 );+ w# v4 O8 c+ j- \: k  I. w
  35.   return result;3 f$ \& j6 H" J% t) O
  36. }
复制代码
* `* S; w1 R, j- M0 p( U( Z
6 V* C. a# H$ G" P) E' n7 B
对glCallList的调用只有以下一处,
; ^! g* E, C! q% r3 l这是显示单个字符还是字符串的方法,待以后再确认。( X) S' c! M8 \7 {3 v3 z2 L9 h; {$ w. K
glCallLists(strlen(&v7), 5121, &v7);5 M' B; a! u. E$ K/ i# l  ^- d
5121为0x1401 ,即 GL_UNSIGNED_BYTE ,是单字节。3 U" D1 k- V- S1 D7 i9 R/ H! K
9 P# P1 C$ @, d9 q  T& k
  1. #define GL_BYTE                           0x14002 x+ H2 @5 Z. ]3 P) @8 t2 M0 O' @
  2. #define GL_UNSIGNED_BYTE                  0x14017 E8 E# l8 @7 c, i& o
  3. #define GL_SHORT                          0x1402
    ( [1 M6 u+ n2 h+ X/ d5 ^2 L) Q6 W5 D
  4. #define GL_UNSIGNED_SHORT                 0x1403+ q+ K5 i3 H2 i
  5. #define GL_INT                            0x1404& p5 M" V6 H  \! F
  6. #define GL_UNSIGNED_INT                   0x14051 ?* O7 T* N0 ~7 T. N
  7. #define GL_FLOAT                          0x14064 m: U: {- o" E  `3 X
  8. #define GL_2_BYTES                        0x14071 ?0 `7 K4 m4 n9 J
  9. #define GL_3_BYTES                        0x1408
    4 f5 R, C' D0 ~" B' P
  10. #define GL_4_BYTES                        0x1409( `2 K8 V9 T7 X& [/ \% u6 W5 X( E
  11. #define GL_DOUBLE                         0x140A
复制代码
! f1 C4 v8 ?$ n* H6 E0 s9 e, y
  W9 ?# P# F* X! v% g. O( o/ n+ t
  1. + x+ t! _" y/ T; D+ Z, L% J
  2. int __cdecl sub_40BFD0(signed int a1, int a2, int a3, int a4, char a5); {( O* \1 @' I- Q# L6 `, X7 U
  3. {0 r$ y: }9 Y1 t5 ^" i. o
  4.   int v5; // ecx
    , c  m2 q" L" i& \# J
  5.   int result; // eax
    4 D/ C+ s% e9 Z7 M( I% b/ N
  6.   char v7; // [esp+18h] [ebp-118h]
    + P3 R7 P3 ~" ]8 |
  7.   char *v8; // [esp+118h] [ebp-18h]* o# y. x2 b: x+ E
  8.   int v9; // [esp+11Ch] [ebp-14h]1 h$ p0 X9 {% Q3 Q( H/ r
  9.   int v10; // [esp+128h] [ebp-8h]
    ( T: p! n* d5 T" R1 a

  10. / E! b/ W* p1 u0 A* r/ W
  11.   v10 = v5;+ J2 M* R' F# h: f/ U0 {
  12.   if ( a4 )1 \0 f  ?* H' j5 x) ^( _
  13.   {/ ?1 J5 i$ ]8 `$ o, D- F
  14.     v8 = &a5;
    & j! K& m! }& T' F
  15.     sub_41BA00(v5, a4);
    " R+ O" ^# c& Z
  16.     v8 = 0;5 L  c4 y: A( }* o
  17.     glBlendFunc(770, 771);
    * L- k+ \# G, ]9 f4 F8 [1 Q
  18.     glBindTexture(3553, dword_4DF3BC4[8 * a3]);
    " o+ c8 P, x* t% u' B/ c/ {! B
  19.     glPushMatrix();
    / @( G! ?. r6 ?2 o% {, z( H
  20.     glLoadIdentity();- i: A2 ~, t3 l# {! B
  21.     v9 = a1;
    6 M# `  r$ @; u/ i# w
  22.     glTranslated(. f4 |% q  S2 l2 u# D
  23.       COERCE_UNSIGNED_INT64((double)a1),
    ; k1 Y7 d, n5 M. y7 ?
  24.       COERCE_UNSIGNED_INT64((double)a1) >> 32,
    . O6 Y7 i1 o5 a# f) c
  25.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)),* M8 f- g" U, u$ |
  26.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)) >> 32,0 Z/ _" p" U. [+ o5 H! i0 h* u
  27.       0,/ o/ E0 R4 I5 q' ~& A$ l0 a; W  H
  28.       0);
    # q9 d# A- y% I5 F) M
  29.     glPushAttrib(0x20000);
    4 W5 p4 C; F/ m5 T1 H9 q
  30.     glListBase(dword_4DF5130 + 16);
    : `+ m  V2 l: s7 M& [; T  d- V
  31.     glCallLists(strlen(&v7), 5121, &v7);
    + B3 Z3 u: |9 ?* x
  32.     glPopAttrib();  o, i* A; ]3 K
  33.     result = glPopMatrix();
    6 W1 l+ ^; K5 j% m% K4 r" y
  34.   }1 \; ?* a3 Q8 N2 L
  35.   return result;; X8 n8 l0 I3 \" ^3 T$ \
  36. }! D1 R0 j8 j5 V+ s* ~, e
复制代码

- M% H3 ~% c" F4 k8 l1 o1 ~0 C, p# v3 z1 t& A/ d

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

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