Jump to content
XCOMUFO & Xenocide

I Found It!


Guest stewart

Recommended Posts

Guest stewart
I haven't done any work on writing to the game data files. It's written in MS QC V 2.5. If you're looking for something to do, why don't you write a whole bunch game data file access functions.
Link to comment
Share on other sites

Guest stewart

Write to Scott Jones (the guy who wrote XcomUtil) he might send you a copy of the master header file for XcomUtil. It's got a bunch of structure definitions in it. They might help you to penetrate the game files. I have a copy of the file myself but I promised him that I would not distribute it.

 

Just tell him you want to write some game file accessor functions as part of a game editor you are writing, and ask him if he has any file format notes to spare or something like that.

 

So has anyone tried Basedznr.exe yet?

Link to comment
Share on other sites

Guest stewart
Did you play with the facility placement features and the base view features. The flip and rotate features, I think are usefull for alligning the base the best way for defense.
Link to comment
Share on other sites

  • 7 months later...
  • 2 months later...
  • 7 months later...

Here''s something the programmers amongst us might find amusing. One of the reasons I start writing the /unfinished/ editor was to learn C (at the time is was a "good" language to know). Anyway the book I was using showed how you could use #define statements to make your source code look like a different computer language. So naturally I went nuts with that. Here is the file where I stored the definitions to make C look like something else (the tabs didn't translate well):

 

/* CompFlag.r */

 

#ifndef COMPFLAG_R

 

/* Target Conditional Compile flags */

#ifdef NDEBUG

#define PRODUCTION_BUILD

/* #define PROFILE_BUILD */

#else /* !DNDEBUG */

#define DEBUG_BUILD

#endif /* NDEBUG */

 

/* Other Conditional Compile flags */

#define MANUALLY_EDIT_TEMP_BASE

#define XCOM_FILES_NOT_EDITED

 

#define REG                  register

 

#define POINTER              *

#define POINTER_TO_POINTER      **

 

#define THE_VALUE_AT            *

#define THE_ADDRESS_OF          &

 

#define POINTER_MEMBER          ->

#define OBJECT_MEMBER        .

 

#define VOID                    void

#define PVOID                VOID POINTER

#define FAR                  _far

#define NEAR                    _near

#define FVOID                VOID FAR

#define NVOID                VOID NEAR

 

#define CHAR                    char

#define INT                  int

#define FLOAT                float

#define DOUBLE                  double

 

#define PCHR                    CHAR POINTER

 

#define SIGNED                  signed

#define UNSIGNED                unsigned

 

#define SHORT                SIGNED CHAR /* QC25 defines short = int */

#define LONG                    long

 

#define SCHR                    SIGNED CHAR

#define SSHORT                  SCHR

#define SINT                    SIGNED INT

#define SLONG                SIGNED LONG INT

 

#define UCHR                    UNSIGNED CHAR

#define USHORT                  UCHR

#define UINT                    UNSIGNED INT

#define ULONG                UNSIGNED LONG INT

 

#define LDOUBLE              LONG DOUBLE

 

typedef SSHORT                  integer_1B;

typedef SINT                    integer_2B;

typedef SLONG                integer_4B;

 

typedef USHORT                  whole_1B;

typedef UINT                    whole_2B;

typedef ULONG                whole_4B;

 

typedef FLOAT                real_4B;

typedef DOUBLE                  real_8B;

typedef LDOUBLE              real_10B;

 

#define STATIC_CAST          (

#define UPON                    )(

#define ENDCAST              )

 

#define bwAND                &      /* same as AND */

#define bwOR                    |      /* same as OR */

#define bwXOR                ^      /* same as XOR */

#define bwNOT                NOT

#define SHIFTL                 

#define SHIFTR                  >>

 

#define And                  &&

#define Or                      ||

#define Not                  !

 

#define ALSO                    ,

 

#define DECLARE

#define CALLED

#define INIT_TO              =

#define ENDDECLARE              ;

 

#define LET

#define LIKEWISE                =

#define BE                      =

#define GAIN                    +=

#define LOSE                    -=

#define EXPAND_BY            *=

#define CONTRACT_BY          /=

#define ENDLET                  ;

 

#define IS                      ==

#define ISNT                    !=

#define EXCEEDS              >

#define DOESNT_EXCEED       

#define TRAILS                 

#define DOESNT_TRAIL            >=

 

#define FBLOCK(x)            FVOID x ( VOID

#define NBLOCK(x)            NVOID x ( VOID

#define FPROC(x)                FVOID x

#define NPROC(x)                NVOID x

#define FFUNC(x,y)              y FAR x

#define NFUNC(x,y)              y NEAR x

#define PROGRAM              main

#define PARAM                (

#define ENDPARAM                )

#define ENDCALL              );

#define BEGIN_SCRIPT            ){

#define VARS                    ){

#define BEGIN_CODE

#define BEGIN_BLOCK          {

#define ENDPROTOTYPE            );

#define ENDBLOCK                }

#define ENDPROC              }

#define ENDFUNC              }

#define ENDPROGRAM              }

 

#define RETURN                  return

#define ENDRETURN            ;

 

#define IF                      if(

#define THEN                    ){

#define ELSE                    }else{

#define ENDIF                }

 

#define CASE                    switch(

#define WHEN                    ){

#define CASE_IS(x)              case x:

#define BREAK                break;

#define OTHERWISE            default:

#define ENDCASE              }

 

#define FROM                    for(

#define STARTING_AT          =

#define TO                      ;

#define STEP                    ;

#define PERFORM              ){

#define ENDFROM              }

 

#define WHILE                while(

#define REPEAT                  ){

#define ENDWHILE                }

 

#define DO                      do{

#define UNTIL                }while( Not

#define ENDDO                );

 

#define ENUMERATION(x)          enum x {

#define ENDENUM              };

 

#define STRUCTURE_TEMPLATE      typedef struct {

#define ENDSTRUCT(x)            } x ;

 

#define FALSE                0

 

#define COMPFLAG_R

#endif /* Not COMPFLAG_R */

Link to comment
Share on other sites

That's pretty normal for data types; it's for portability reasons. As for say loop structures, I think I was trying to get rid of the squiggles or something. You see at that time my high-level programming had consisted more-or-less of Pascal and Fortran ( I bet you'll see that if you look again)!
Link to comment
Share on other sites

  • 2 years later...

So the other day, I actually needed a floppy. I grab one out of a drawer. Prudence dictates that you check contents first. HOLY F'EN SHISHE! My source code! I thought it was long lost. The last time I saw it was, like, years ago. Xmas in f'en October; I tell ya.

 

So of course, in fine programming tradition, 57 files and not one single gawdamm comment to be found. Yes! My source code and I are now spending time together as we rediscover each other . Now, thanks to our good friend Mr. Hatfarm, I can actually think about having it interface with the actual game files.

 

:FriggenBigSmile:

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...