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

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

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

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

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

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

本帖最后由 shane007 于 2023-9-4 18:48 编辑
3 p+ p( v; T" S' \- D4 U( q9 R' p2 y7 \3 S6 R& R  t
这是个opengl引擎的游戏,对opengl的初始化是在scream.exe里边完成的。- r8 Y4 q! F7 }, m6 [
对于opengl的游戏我们主要关注glGenLists和glCallList这2个函数
5 ?" Y- k; G1 |) C, d/ f9 s. B8 G
9 P: c7 X2 V) T1 C9 k( u( v
" H( J; i4 v. @$ O6 l- o4 y, n7 fglGenLists的调用有4处,前3处参数为1,应该不是。
, i% H% `* J$ d% a. D一下是第四处代码,这里应该就是生成字体的地方。
  X  Y6 M8 X% a5 l& J4 n, H从代码里可以看出,字体材质长宽各是16各字符,共256个字符,此处要修改。% g! f5 H* a: G
  1. int sub_40BEB0(); W7 h: ~6 b6 J0 `- \2 P
  2. {* s6 u4 F1 R4 G7 p
  3.   signed int v0; // ebx2 b* }6 u. }! z: }, r
  4.   int v1; // ecx8 Z( E5 _* Y3 y
  5.   float v2; // ST18_4
    ' S$ U5 P& }) {) r7 g
  6.   float v3; // ST1C_47 ^; K. {0 `* |. l
  7.   float v4; // ST20_4+ v! j) V, ?) |. N4 e% C
  8.   float v5; // ST24_4- @; x5 O+ W' C/ c
  9.   int result; // eax
    , h2 p" S3 O0 `( j0 a: I% K7 q! ]" [
  10. ' l# A3 x+ E% y# i7 P: I
  11.   v0 = 0;* f- x9 `: E; l. \
  12.   dword_4DF5130 = glGenLists(272);
    ; _$ S* ]3 K9 I# r
  13.   do
    4 j) u& [& P. r# J. a
  14.   {- a9 W9 X- U7 o
  15.     v2 = (double)(v0 % -16) * flt_483450;5 |: Z- Q0 g7 w1 @
  16.     v3 = (double)(v0 / 16) * flt_483450;
    0 c& C' G: h& }  ]
  17.     glNewList(v1, v0 % 16, v0 + dword_4DF5130, 4864);: z) \( E/ y) X
  18.     glBegin(7);* ?0 y: }7 s+ H$ b( {6 N
  19.     glTexCoord2f(LODWORD(v2), LODWORD(v3));
    ( E1 }0 c& Q( r- Q3 b! ~
  20.     glVertex2i(0, 0);
    8 g) j; r' \8 G7 i+ E) H7 n6 h6 ^
  21.     v4 = v2 + flt_483450;4 W2 t  P2 K; L, [2 g
  22.     glTexCoord2f(LODWORD(v4), LODWORD(v3));
    ( l4 n; J* X0 O) y% @
  23.     glVertex2i(16, 0);& ~' t& G5 Y! H( Q; g
  24.     v5 = v3 + flt_483454;  ~: U/ i1 X! n' P8 e% W
  25.     glTexCoord2f(LODWORD(v4), LODWORD(v5));
    - e/ T3 y9 [2 Z1 {
  26.     glVertex2i(16, 16);
    * J5 M+ y- \) U7 M- U/ [8 j
  27.     glTexCoord2f(LODWORD(v2), LODWORD(v5));1 j5 \+ ?, Q' N% K( t  o+ v: E
  28.     glVertex2i(0, 16);" F, j. k9 q# Z) s& S
  29.     glEnd();1 N. ]0 O# }' h0 \! m0 q, S5 R
  30.     ++v0;0 V. I2 f8 S* ^6 j
  31.     glTranslated(0, 1076101120, 0, 0, 0, 0);; S. ?! H. v. T1 l3 N0 C5 Z
  32.     result = glEndList();
    - I7 b. H/ t. b6 e% A* M4 D
  33.   }
    $ i) A; x$ N! G# s" b
  34.   while ( v0 < 272 );  s. {; A+ U$ s9 }  V
  35.   return result;
    ; e/ s* l, c# u( k- u9 q
  36. }
复制代码
) T- q' J- P1 r' f- G8 S

. z. Y7 r9 {& i6 X+ M, C  Z对glCallList的调用只有以下一处,9 R+ V* U. M8 l  h
这是显示单个字符还是字符串的方法,待以后再确认。
# w0 s/ U" J0 ]; }* x glCallLists(strlen(&v7), 5121, &v7);$ Y, f& Q) o6 y* F% o1 Y
5121为0x1401 ,即 GL_UNSIGNED_BYTE ,是单字节。
: C5 Z3 m( C8 Z  z8 S: \3 J  d. q' x: g  i5 t/ [/ `1 M+ F& N- W
  1. #define GL_BYTE                           0x1400- @8 \1 d9 y: {+ L  T# j8 F
  2. #define GL_UNSIGNED_BYTE                  0x1401
    3 |* R& l# I& |+ p. U: L
  3. #define GL_SHORT                          0x1402. M2 ?9 _$ j$ E* _5 }, b: k8 b
  4. #define GL_UNSIGNED_SHORT                 0x1403; s0 f# J5 ^, ~/ e
  5. #define GL_INT                            0x14045 F! e/ b( @8 z8 m7 C
  6. #define GL_UNSIGNED_INT                   0x1405, ~7 H* O# ?, M1 O: f. I
  7. #define GL_FLOAT                          0x14066 y6 K& N* k! q" p- S" d* ^3 d
  8. #define GL_2_BYTES                        0x1407" {1 r! Y9 S' R* M6 t
  9. #define GL_3_BYTES                        0x14080 e$ b' T- q# ^" V8 d8 @2 d
  10. #define GL_4_BYTES                        0x1409
    3 W& ~- _0 s1 v$ Y9 T, W; W
  11. #define GL_DOUBLE                         0x140A
复制代码

. ?+ \! h" i7 N' ^3 i
4 I  l5 h: [: {9 V0 h
  1. 2 [9 L) p! R9 N: g5 G3 E, T1 t
  2. int __cdecl sub_40BFD0(signed int a1, int a2, int a3, int a4, char a5)# e" S( k; n# a' A/ q
  3. {! l4 s) `% R5 P% _/ Y% l
  4.   int v5; // ecx4 g/ H* P1 p* t, }  H6 h
  5.   int result; // eax+ ?. k5 t  s  A5 C- ]& K
  6.   char v7; // [esp+18h] [ebp-118h]9 o0 ?4 g" C5 ]' k7 O
  7.   char *v8; // [esp+118h] [ebp-18h]
    ' C+ K7 {1 D9 {% Q+ u3 L
  8.   int v9; // [esp+11Ch] [ebp-14h]
    3 r6 B, Z) a; S+ Q
  9.   int v10; // [esp+128h] [ebp-8h]7 ~  k# y$ G7 U" q" o! h% C
  10. 8 P% g- c; n" z7 [
  11.   v10 = v5;
    0 |$ w1 i1 a# L# m+ A
  12.   if ( a4 )* R& z  ]  J! o% T( f
  13.   {
    " s- P  N7 e9 ?1 u& B9 h( Y
  14.     v8 = &a5;
    + b8 z% O4 t! e
  15.     sub_41BA00(v5, a4);
    , G! a, B& u: s) x( d  B4 c
  16.     v8 = 0;! u* A& X) J9 g0 f! x
  17.     glBlendFunc(770, 771);
    * M0 B& H0 M. @0 @7 |. r8 Z
  18.     glBindTexture(3553, dword_4DF3BC4[8 * a3]);
    6 w; K/ |+ X6 K' n: T
  19.     glPushMatrix();/ a5 D. R! R' z5 R6 O2 W/ Z
  20.     glLoadIdentity();
    ( k% }2 M6 o6 |
  21.     v9 = a1;
    % K! ]* Y1 B& k) k
  22.     glTranslated($ Q  S7 n* K! F7 n; ^( W3 h
  23.       COERCE_UNSIGNED_INT64((double)a1),
    7 e: t' \# l3 a! M
  24.       COERCE_UNSIGNED_INT64((double)a1) >> 32,, g! p2 B! ]+ D! A% }* F  L2 h
  25.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)),
    / s% D) X( {$ \5 \5 x, {3 t
  26.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)) >> 32,
    + m* }8 ?- `% |
  27.       0,! u* p! Z! i' Y8 A1 h8 m  ^! R' c% I
  28.       0);
    8 R# j0 O0 m! l
  29.     glPushAttrib(0x20000);
    4 o4 i+ Z' N: I& r0 V5 [! B8 M$ M
  30.     glListBase(dword_4DF5130 + 16);
    ! y; @5 Q1 ~: h* e4 s
  31.     glCallLists(strlen(&v7), 5121, &v7);% [5 @8 r$ E( D9 E& J. `% ~
  32.     glPopAttrib();- A; c. A% I3 }: C9 A
  33.     result = glPopMatrix();
    * E6 y( v4 F1 a
  34.   }
    5 [- E" E5 k- Z& }& B
  35.   return result;$ W5 r- c+ F7 e! S- F$ q0 Y4 j
  36. }2 u& W+ h/ ?7 f2 u2 L  e
复制代码
. \3 z1 j- k" a- r/ i* U
8 C, U3 ]9 N: V0 w9 |+ B5 B+ L" ~

7 r% a7 k4 K" @+ {- I- Q9 |
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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