Hex Artifact Content

Not logged in

Artifact f42371bc1f59bea62bd0d763c45d221766da561a:


0000: 23 69 66 6e 64 65 66 20 41 46 58 5f 41 52 43 42  #ifndef AFX_ARCB
0010: 32 65 5f 48 5f 5f 36 39 37 43 43 31 42 44 5f 32  2e_H__697CC1BD_2
0020: 43 32 38 5f 34 33 34 43 5f 38 43 35 33 5f 32 33  C28_434C_8C53_23
0030: 39 44 36 32 34 32 32 37 43 33 5f 5f 49 4e 43 4c  9D624227C3__INCL
0040: 55 44 45 44 5f 0d 0a 23 64 65 66 69 6e 65 20 41  UDED_..#define A
0050: 46 58 5f 41 52 43 42 32 65 5f 48 5f 5f 36 39 37  FX_ARCB2e_H__697
0060: 43 43 31 42 44 5f 32 43 32 38 5f 34 33 34 43 5f  CC1BD_2C28_434C_
0070: 38 43 35 33 5f 32 33 39 44 36 32 34 32 32 37 43  8C53_239D624227C
0080: 33 5f 5f 49 4e 43 4c 55 44 45 44 5f 0d 0a 0d 0a  3__INCLUDED_....
0090: 23 69 6e 63 6c 75 64 65 20 22 41 72 63 68 69 76  #include "Archiv
00a0: 65 72 2e 68 22 0d 0a 0d 0a 63 6c 61 73 73 20 43  er.h"....class C
00b0: 41 72 63 42 32 65 20 3a 20 70 75 62 6c 69 63 20  ArcB2e : public 
00c0: 43 41 72 63 68 69 76 65 72 0d 0a 7b 0d 0a 70 75  CArchiver..{..pu
00d0: 62 6c 69 63 3a 20 2f 2f 2d 2d 3c 61 63 74 69 6f  blic: //--<actio
00e0: 6e 3e 2d 2d 0d 0a 0d 0a 09 43 41 72 63 42 32 65  n>--.....CArcB2e
00f0: 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 73 63  ( const char* sc
0100: 72 69 70 74 6e 61 6d 65 20 29 3b 0d 0a 09 76 69  riptname );...vi
0110: 72 74 75 61 6c 20 7e 43 41 72 63 42 32 65 28 29  rtual ~CArcB2e()
0120: 3b 0d 0a 09 73 74 61 74 69 63 20 63 6f 6e 73 74  ;...static const
0130: 20 63 68 61 72 2a 20 69 6e 69 74 5f 62 32 65 5f   char* init_b2e_
0140: 70 61 74 68 28 29 3b 0d 0a 0d 0a 70 72 69 76 61  path();....priva
0150: 74 65 3a 20 2f 2f 2d 2d 3c 43 41 72 63 68 69 76  te: //--<CArchiv
0160: 65 72 3e 2d 2d 0d 0a 0d 0a 09 69 6e 74 20 20 76  er>--.....int  v
0170: 5f 6c 6f 61 64 28 29 3b 0d 0a 09 62 6f 6f 6c 20  _load();...bool 
0180: 76 5f 76 65 72 28 20 6b 69 53 74 72 26 20 73 74  v_ver( kiStr& st
0190: 72 20 29 3b 0d 0a 09 62 6f 6f 6c 20 76 5f 63 68  r );...bool v_ch
01a0: 65 63 6b 28 20 63 6f 6e 73 74 20 6b 69 50 61 74  eck( const kiPat
01b0: 68 26 20 61 6e 61 6d 65 20 29 3b 0d 0a 09 69 6e  h& aname );...in
01c0: 74 20 20 76 5f 63 6f 6e 74 65 6e 74 73 28 20 63  t  v_contents( c
01d0: 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 61 6e 61  onst kiPath& ana
01e0: 6d 65 2c 20 6b 69 50 61 74 68 26 20 64 6e 61 6d  me, kiPath& dnam
01f0: 65 20 29 3b 0d 0a 09 69 6e 74 20 20 76 5f 6d 65  e );...int  v_me
0200: 6c 74 28 20 63 6f 6e 73 74 20 61 72 63 6e 61 6d  lt( const arcnam
0210: 65 26 20 61 6e 61 6d 65 2c 20 63 6f 6e 73 74 20  e& aname, const 
0220: 6b 69 50 61 74 68 26 20 64 64 69 72 2c 20 63 6f  kiPath& ddir, co
0230: 6e 73 74 20 61 66 6c 41 72 72 61 79 2a 20 66 69  nst aflArray* fi
0240: 6c 65 73 20 29 3b 0d 0a 09 62 6f 6f 6c 20 76 5f  les );...bool v_
0250: 6c 69 73 74 28 20 63 6f 6e 73 74 20 61 72 63 6e  list( const arcn
0260: 61 6d 65 26 20 61 6e 61 6d 65 2c 20 61 66 6c 41  ame& aname, aflA
0270: 72 72 61 79 26 20 66 69 6c 65 73 20 29 3b 0d 0a  rray& files );..
0280: 09 69 6e 74 20 20 76 5f 63 6f 6d 70 72 65 73 73  .int  v_compress
0290: 28 20 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20  ( const kiPath& 
02a0: 62 61 73 65 2c 20 63 6f 6e 73 74 20 77 66 64 41  base, const wfdA
02b0: 72 72 61 79 26 20 66 69 6c 65 73 2c 20 63 6f 6e  rray& files, con
02c0: 73 74 20 6b 69 50 61 74 68 26 20 64 64 69 72 2c  st kiPath& ddir,
02d0: 20 69 6e 74 20 6d 65 74 68 6f 64 2c 20 62 6f 6f   int method, boo
02e0: 6c 20 73 66 78 20 29 3b 0d 0a 09 6b 69 53 74 72  l sfx );...kiStr
02f0: 20 76 5f 6e 61 6d 65 28 63 6f 6e 73 74 20 63 68   v_name(const ch
0300: 61 72 2a 29 20 63 6f 6e 73 74 20 7b 20 72 65 74  ar*) const { ret
0310: 75 72 6e 20 65 78 65 20 3f 20 65 78 65 2d 3e 6e  urn exe ? exe->n
0320: 61 6d 65 28 29 20 3a 20 6b 69 53 74 72 28 22 22  ame() : kiStr(""
0330: 29 3b 20 7d 0d 0a 0d 0a 09 62 6f 6f 6c 20 61 72  ); }.....bool ar
0340: 63 32 73 66 78 28 20 63 6f 6e 73 74 20 6b 69 50  c2sfx( const kiP
0350: 61 74 68 26 20 74 65 6d 70 2c 20 63 6f 6e 73 74  ath& temp, const
0360: 20 6b 69 50 61 74 68 26 20 64 65 73 74 20 29 3b   kiPath& dest );
0370: 0d 0a 09 69 6e 74 20 20 63 6d 70 72 28 20 63 6f  ...int  cmpr( co
0380: 6e 73 74 20 63 68 61 72 2a 20 73 63 72 2c 20 63  nst char* scr, c
0390: 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 62 61 73  onst kiPath& bas
03a0: 65 2c 20 63 6f 6e 73 74 20 77 66 64 41 72 72 61  e, const wfdArra
03b0: 79 26 20 66 69 6c 65 73 2c 20 63 6f 6e 73 74 20  y& files, const 
03c0: 6b 69 50 61 74 68 26 20 64 64 69 72 2c 20 63 6f  kiPath& ddir, co
03d0: 6e 73 74 20 69 6e 74 20 6d 65 74 68 6f 64 20 29  nst int method )
03e0: 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 20 2f 2f  ;....private: //
03f0: 2d 2d 3c 52 79 74 68 70 53 63 72 69 70 74 3e 2d  --<RythpScript>-
0400: 2d 0d 0a 0d 0a 09 2f 2f 20 73 63 72 69 70 74 73  -.....// scripts
0410: 0d 0a 09 63 68 61 72 2a 20 20 20 20 20 20 20 6d  ...char*       m
0420: 5f 53 63 72 69 70 74 42 75 66 3b 0d 0a 09 63 68  _ScriptBuf;...ch
0430: 61 72 2a 20 20 20 20 20 20 20 6d 5f 4c 6f 61 64  ar*       m_Load
0440: 53 63 72 3b 0d 0a 09 63 6f 6e 73 74 20 63 68 61  Scr;...const cha
0450: 72 2a 20 6d 5f 45 6e 63 53 63 72 3b 0d 0a 09 63  r* m_EncScr;...c
0460: 6f 6e 73 74 20 63 68 61 72 2a 20 6d 5f 44 65 63  onst char* m_Dec
0470: 53 63 72 3b 0d 0a 09 63 6f 6e 73 74 20 63 68 61  Scr;...const cha
0480: 72 2a 20 6d 5f 53 66 78 53 63 72 3b 0d 0a 09 63  r* m_SfxScr;...c
0490: 6f 6e 73 74 20 63 68 61 72 2a 20 6d 5f 44 63 45  onst char* m_DcE
04a0: 53 63 72 3b 0d 0a 09 63 6f 6e 73 74 20 63 68 61  Scr;...const cha
04b0: 72 2a 20 6d 5f 4c 73 74 53 63 72 3b 0d 0a 09 62  r* m_LstScr;...b
04c0: 6f 6f 6c 20 20 20 20 20 20 20 20 6d 5f 53 66 78  ool        m_Sfx
04d0: 44 69 72 65 63 74 3b 0d 0a 0d 0a 09 65 6e 75 6d  Direct;.....enum
04e0: 20 73 63 72 5f 6d 6f 64 65 20 7b 20 6d 4c 6f 64   scr_mode { mLod
04f0: 2c 20 6d 45 6e 63 2c 20 6d 44 65 63 2c 20 6d 44  , mEnc, mDec, mD
0500: 63 31 2c 20 6d 53 66 78 2c 20 6d 4c 73 74 20 7d  c1, mSfx, mLst }
0510: 3b 0d 0a 09 69 6e 74 20 65 78 65 63 5f 73 63 72  ;...int exec_scr
0520: 69 70 74 28 20 63 6f 6e 73 74 20 63 68 61 72 2a  ipt( const char*
0530: 20 73 63 72 2c 20 73 63 72 5f 6d 6f 64 65 20 6d   scr, scr_mode m
0540: 6f 64 65 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 42 32  ode );.....// B2
0550: 65 20 43 6f 72 65 0d 0a 09 63 6c 61 73 73 20 43  e Core...class C
0560: 42 32 65 43 6f 72 65 20 3a 20 70 75 62 6c 69 63  B2eCore : public
0570: 20 6b 69 52 79 74 68 70 56 4d 0d 0a 09 7b 0d 0a   kiRythpVM...{..
0580: 09 09 66 72 69 65 6e 64 20 63 6c 61 73 73 20 43  ..friend class C
0590: 41 72 63 42 32 65 3b 0d 0a 0d 0a 09 09 62 6f 6f  ArcB2e;......boo
05a0: 6c 20 65 78 65 63 5f 66 75 6e 63 74 69 6f 6e 28  l exec_function(
05b0: 20 63 6f 6e 73 74 20 6b 69 56 61 72 26 20 6e 61   const kiVar& na
05c0: 6d 65 2c 20 63 6f 6e 73 74 20 43 68 61 72 41 72  me, const CharAr
05d0: 72 61 79 26 20 61 2c 20 63 6f 6e 73 74 20 42 6f  ray& a, const Bo
05e0: 6f 6c 41 72 72 61 79 26 20 62 2c 69 6e 74 20 63  olArray& b,int c
05f0: 2c 20 6b 69 56 61 72 2a 20 72 20 29 3b 0d 0a 0d  , kiVar* r );...
0600: 0a 09 09 76 6f 69 64 20 61 72 63 28 20 63 6f 6e  ...void arc( con
0610: 73 74 20 63 68 61 72 2a 20 6f 70 74 2c 20 63 6f  st char* opt, co
0620: 6e 73 74 20 43 68 61 72 41 72 72 61 79 26 20 61  nst CharArray& a
0630: 2c 20 63 6f 6e 73 74 20 42 6f 6f 6c 41 72 72 61  , const BoolArra
0640: 79 26 20 62 2c 69 6e 74 20 63 2c 20 6b 69 56 61  y& b,int c, kiVa
0650: 72 2a 20 72 20 29 3b 0d 0a 09 09 76 6f 69 64 20  r* r );....void 
0660: 6c 69 73 74 28 20 63 6f 6e 73 74 20 63 68 61 72  list( const char
0670: 2a 20 6f 70 74 2c 20 63 6f 6e 73 74 20 43 68 61  * opt, const Cha
0680: 72 41 72 72 61 79 26 20 61 2c 20 63 6f 6e 73 74  rArray& a, const
0690: 20 42 6f 6f 6c 41 72 72 61 79 26 20 62 2c 69 6e   BoolArray& b,in
06a0: 74 20 63 2c 20 6b 69 56 61 72 2a 20 72 20 29 3b  t c, kiVar* r );
06b0: 0d 0a 09 09 76 6f 69 64 20 72 65 73 70 28 20 62  ....void resp( b
06c0: 6f 6f 6c 20 6e 65 65 64 71 2c 20 63 6f 6e 73 74  ool needq, const
06d0: 20 63 68 61 72 2a 20 6f 70 74 2c 20 63 6f 6e 73   char* opt, cons
06e0: 74 20 43 68 61 72 41 72 72 61 79 26 20 61 2c 20  t CharArray& a, 
06f0: 63 6f 6e 73 74 20 42 6f 6f 6c 41 72 72 61 79 26  const BoolArray&
0700: 20 62 2c 69 6e 74 20 63 2c 20 6b 69 56 61 72 2a   b,int c, kiVar*
0710: 20 72 20 29 3b 0d 0a 09 09 76 6f 69 64 20 69 6e   r );....void in
0720: 70 75 74 28 20 63 6f 6e 73 74 20 63 68 61 72 2a  put( const char*
0730: 20 6d 73 67 2c 20 63 6f 6e 73 74 20 63 68 61 72   msg, const char
0740: 2a 20 64 65 66 76 61 6c 2c 20 6b 69 56 61 72 2a  * defval, kiVar*
0750: 20 72 20 29 3b 0d 0a 0d 0a 09 09 76 6f 69 64 20   r );......void 
0760: 73 65 74 50 74 72 28 20 43 41 72 63 42 32 65 2a  setPtr( CArcB2e*
0770: 20 70 2c 20 73 63 72 5f 6d 6f 64 65 20 6d 20 29   p, scr_mode m )
0780: 7b 78 3d 70 3b 6d 5f 6d 6f 64 65 3d 6d 3b 7d 0d  {x=p;m_mode=m;}.
0790: 0a 09 09 43 41 72 63 42 32 65 2a 20 78 3b 0d 0a  ...CArcB2e* x;..
07a0: 09 09 73 63 72 5f 6d 6f 64 65 20 6d 5f 6d 6f 64  ..scr_mode m_mod
07b0: 65 3b 0d 0a 09 09 6b 69 56 61 72 20 74 3b 0d 0a  e;....kiVar t;..
07c0: 09 7d 3b 0d 0a 09 66 72 69 65 6e 64 20 63 6c 61  .};...friend cla
07d0: 73 73 20 43 42 32 65 43 6f 72 65 3b 0d 0a 09 73  ss CB2eCore;...s
07e0: 74 61 74 69 63 20 63 68 61 72 20 73 74 5f 62 61  tatic char st_ba
07f0: 73 65 5b 4d 41 58 5f 50 41 54 48 5d 3b 0d 0a 09  se[MAX_PATH];...
0800: 73 74 61 74 69 63 20 69 6e 74 20 20 73 74 5f 6c  static int  st_l
0810: 69 66 65 3b 0d 0a 09 73 74 61 74 69 63 20 43 42  ife;...static CB
0820: 32 65 43 6f 72 65 2a 20 72 76 6d 3b 0d 0a 0d 0a  2eCore* rvm;....
0830: 09 2f 2f 20 6d 6f 64 75 6c 65 0d 0a 09 43 41 72  .// module...CAr
0840: 63 4d 6f 64 75 6c 65 2a 20 65 78 65 3b 0d 0a 09  cModule* exe;...
0850: 6b 69 41 72 72 61 79 3c 6b 69 53 74 72 3e 20 6d  kiArray<kiStr> m
0860: 5f 73 75 62 46 69 6c 65 3b 0d 0a 0d 0a 09 2f 2f  _subFile;.....//
0870: 20 73 63 72 69 70 74 98 41 8c 67 0d 0a 09 62 6f   script.A.g...bo
0880: 6f 6c 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 28 20  ol load_module( 
0890: 63 6f 6e 73 74 20 63 68 61 72 2a 20 6e 61 6d 65  const char* name
08a0: 20 29 3b 0d 0a 09 69 6e 74 20 6d 5f 52 65 73 75   );...int m_Resu
08b0: 6c 74 3b 0d 0a 09 62 6f 6f 6c 20 6d 5f 75 73 4d  lt;...bool m_usM
08c0: 6f 64 65 3b 0d 0a 09 63 6f 6e 73 74 20 61 72 63  ode;...const arc
08d0: 6e 61 6d 65 2a 20 20 6d 5f 70 73 41 72 63 3b 0d  name*  m_psArc;.
08e0: 0a 09 63 6f 6e 73 74 20 6b 69 50 61 74 68 2a 20  ..const kiPath* 
08f0: 20 20 6d 5f 70 73 44 69 72 3b 0d 0a 09 63 6f 6e    m_psDir;...con
0900: 73 74 20 69 6e 74 2a 20 20 20 20 20 20 6d 5f 70  st int*      m_p
0910: 73 4d 68 64 3b 0d 0a 09 63 6f 6e 73 74 20 77 66  sMhd;...const wf
0920: 64 41 72 72 61 79 2a 20 6d 5f 70 73 4c 69 73 74  dArray* m_psList
0930: 3b 0d 0a 09 63 6f 6e 73 74 20 61 66 6c 41 72 72  ;...const aflArr
0940: 61 79 2a 20 6d 5f 70 73 41 49 6e 66 6f 3b 0d 0a  ay* m_psAInfo;..
0950: 7d 3b 0d 0a 0d 0a 23 65 6e 64 69 66 0d 0a        };....#endif..