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

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

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

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

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

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

本帖最后由 shane007 于 2023-9-4 18:48 编辑 , f8 r! a- A5 Y! g

5 A( t+ u1 g7 I! F这是个opengl引擎的游戏,对opengl的初始化是在scream.exe里边完成的。
2 W1 ~. A9 r/ {5 N) F5 J5 ^! @对于opengl的游戏我们主要关注glGenLists和glCallList这2个函数
# @5 K( a! m5 I5 r! K* O
+ N, K6 P" L% f3 l- @
6 y( W# H/ M; X/ |/ t4 o- ^glGenLists的调用有4处,前3处参数为1,应该不是。7 B; ?5 [/ z  s1 h6 w
一下是第四处代码,这里应该就是生成字体的地方。6 X" N* M& r) f$ V# P7 h' [8 ?
从代码里可以看出,字体材质长宽各是16各字符,共256个字符,此处要修改。- V# M1 s" I; q+ Q- y9 r
  1. int sub_40BEB0()
    1 [+ E/ V7 m3 R+ t1 q+ p4 h" _
  2. {5 `! D9 A5 `* M  t
  3.   signed int v0; // ebx
    ) @) n9 Z/ S: G& ^) [/ _
  4.   int v1; // ecx
    ' i4 Q! M+ v0 \- P. s) v6 }
  5.   float v2; // ST18_4
    ( ?7 r5 c8 j1 v$ b( g% v
  6.   float v3; // ST1C_4
    ! ]  w/ N5 G& R) Q' A( Y: ?# u
  7.   float v4; // ST20_4: O, r8 R7 J1 C" [  z7 w
  8.   float v5; // ST24_4
    3 V- Q6 Y& m) C' e
  9.   int result; // eax( B' ?& f/ I2 m9 L8 p# _6 i

  10. & _+ L0 b9 |* x( _; E1 e) I
  11.   v0 = 0;5 G: ]% o- X, u: D5 L, D
  12.   dword_4DF5130 = glGenLists(272);
    # |- N# @- e7 W
  13.   do
    1 f9 D) z* R9 z  L/ g2 W; w8 a
  14.   {
    ( H* u" \# Z- c* r, o1 M4 }" z3 m: ?/ V
  15.     v2 = (double)(v0 % -16) * flt_483450;, ^; c! e8 S8 I* r( ^
  16.     v3 = (double)(v0 / 16) * flt_483450;
    ) i+ H2 b5 d9 K2 W1 W8 Z/ W; F
  17.     glNewList(v1, v0 % 16, v0 + dword_4DF5130, 4864);
    ( j: d( ?7 o+ n  i7 E1 w
  18.     glBegin(7);- q. y6 T& F: Y* q
  19.     glTexCoord2f(LODWORD(v2), LODWORD(v3));
      U( _. s4 s0 F2 o
  20.     glVertex2i(0, 0);' s- E- _4 ]  o8 l- P! `
  21.     v4 = v2 + flt_483450;( k. p4 Z* y  G: o5 z
  22.     glTexCoord2f(LODWORD(v4), LODWORD(v3));- b3 `8 Z/ d/ S& Z
  23.     glVertex2i(16, 0);
    ! J9 W" X; Z! Z, {7 G
  24.     v5 = v3 + flt_483454;6 l; @! ]8 W" v2 H9 }7 a$ q. k
  25.     glTexCoord2f(LODWORD(v4), LODWORD(v5));
    - F* H0 M) z( P. W/ B5 _8 ?4 I
  26.     glVertex2i(16, 16);2 b0 ~8 s" ^- |1 K  N
  27.     glTexCoord2f(LODWORD(v2), LODWORD(v5));
    ! ?& L* M2 |( _# N# a; C3 p
  28.     glVertex2i(0, 16);
    # S1 h* s) n/ u% z2 I7 z
  29.     glEnd();2 _+ E- f5 \/ i, f& U  W, Q
  30.     ++v0;
    & H' r9 j- o$ W0 y& X& J
  31.     glTranslated(0, 1076101120, 0, 0, 0, 0);
    $ I3 a: R. p+ U
  32.     result = glEndList();
    , @0 s; u& p; i# M/ s: q
  33.   }
    2 Q! K' o* @* ]
  34.   while ( v0 < 272 );
      i+ s% t  M; ^+ q& G& I
  35.   return result;
    ' X5 N8 i# _* [
  36. }
复制代码

% |: Z8 ?& Z1 P' j5 p
1 `: L; r; p8 C8 Z( r, i对glCallList的调用只有以下一处,2 h0 m8 X5 y6 r2 P1 x
这是显示单个字符还是字符串的方法,待以后再确认。
7 E0 _, h& P8 ]* h" G glCallLists(strlen(&v7), 5121, &v7);1 F6 T5 c: @6 k3 _! l
5121为0x1401 ,即 GL_UNSIGNED_BYTE ,是单字节。
8 h7 B. [( E& O; G- u. \
3 _$ a% A/ Z! s, K' t9 R" u4 f
  1. #define GL_BYTE                           0x1400  d* a, v5 h! N% Y  K
  2. #define GL_UNSIGNED_BYTE                  0x14016 _6 m0 a5 w7 `) N6 K
  3. #define GL_SHORT                          0x1402
    : e  h" t$ `6 N! z5 O+ \
  4. #define GL_UNSIGNED_SHORT                 0x1403/ X# X* s  `+ W) v* a
  5. #define GL_INT                            0x1404+ i, m/ A" g: e4 ]
  6. #define GL_UNSIGNED_INT                   0x1405
    + S6 |9 }9 P9 v3 u+ S
  7. #define GL_FLOAT                          0x1406
    ; D8 e& x2 h  D
  8. #define GL_2_BYTES                        0x1407
    7 `& e0 Y- _* f2 B, A& g
  9. #define GL_3_BYTES                        0x1408
    8 f$ E  e6 Z) B/ G' N, t  {
  10. #define GL_4_BYTES                        0x14096 A; r" y0 N2 i: O
  11. #define GL_DOUBLE                         0x140A
复制代码

( B! N5 M. d( D# k& n! M- x  R( n* \
  1. # _4 o9 _4 I  O/ E! m, l
  2. int __cdecl sub_40BFD0(signed int a1, int a2, int a3, int a4, char a5)* Y8 P5 a( R: ]: ]4 U
  3. {  U" |3 ]8 f$ h- H- e
  4.   int v5; // ecx
    7 E. _& S- m) Z
  5.   int result; // eax
    / Q3 T. r+ ?  z8 _' q, g
  6.   char v7; // [esp+18h] [ebp-118h]
    " z- l- Y3 f% _- @( \% @0 [
  7.   char *v8; // [esp+118h] [ebp-18h]
    1 k: b9 z' G' o- a
  8.   int v9; // [esp+11Ch] [ebp-14h]; C1 ]) ^3 x7 b' r$ t
  9.   int v10; // [esp+128h] [ebp-8h]
    . V2 N# d! c5 H
  10. ( h) a% i9 c$ o" V, ~7 l
  11.   v10 = v5;
    * ^5 m5 q: ?& }( j2 u5 T# E2 J8 L7 R
  12.   if ( a4 )
    % a$ b' R0 j6 H1 G, D
  13.   {2 w& O( L( L4 G! q
  14.     v8 = &a5;; ]8 d( V* Y+ I3 Z" ~3 K0 U8 g
  15.     sub_41BA00(v5, a4);4 d4 T9 i' u# X( z/ _% P. D+ O
  16.     v8 = 0;
    ' R. t5 r4 ]+ k) ]5 p% p
  17.     glBlendFunc(770, 771);! r- |  _7 G* l2 s/ {/ c
  18.     glBindTexture(3553, dword_4DF3BC4[8 * a3]);
    0 z) N* k% Y# l
  19.     glPushMatrix();6 E% P1 ~" L/ S* C! N# l
  20.     glLoadIdentity();
    9 ?* t( N6 X% u6 B' h0 b
  21.     v9 = a1;
      ^+ v5 h: t1 C
  22.     glTranslated(
    6 T/ h6 X7 m+ [
  23.       COERCE_UNSIGNED_INT64((double)a1),( \* V2 i; i  d- Q$ D* B
  24.       COERCE_UNSIGNED_INT64((double)a1) >> 32,: Q6 i3 ]) q8 F, W& x
  25.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)),1 I4 M' J3 }: R' `5 q# z
  26.       COERCE_UNSIGNED_INT64((double)(dword_4DF8B68 - a2)) >> 32,0 E& {/ H* z  v1 g% e  R5 I3 ]" z
  27.       0,
    5 H0 Q7 Q" Z" p4 F! `% y
  28.       0);  k: E$ i8 E* g4 X! ]& `& C& T; g# Y
  29.     glPushAttrib(0x20000);
    6 d1 F1 X7 y) `2 w  W
  30.     glListBase(dword_4DF5130 + 16);
    - `: P) H7 S4 b; G# ^4 U' L0 z
  31.     glCallLists(strlen(&v7), 5121, &v7);8 @! P7 ^* S7 P& M
  32.     glPopAttrib();2 g' j# @( ~1 k+ o$ m4 K+ }+ c
  33.     result = glPopMatrix();! y( _: z& ^* Q7 y
  34.   }
    & e' [8 ~, u' v" e, [
  35.   return result;4 L9 j( Y8 `. K% q" y7 a; \' D
  36. }
    + S3 W4 S! r! F* B4 Y0 F
复制代码

) S- Q  r6 ^3 W9 D: }7 K
( d% S; P4 |; E1 p7 d- d; P1 v2 w1 j( R3 I1 w
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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