Results 1 to 10 of 15

Thread: Libcod CoD2 1.0

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Global Mossaderator Mitch's Avatar
    Join Date
    Nov 2012
    Posts
    654
    Thanks
    204
    Thanked 450 Times in 305 Posts
    My latest version (includes above all my updates)
    PHP Code:
    Indexdoit.sh
    ===================================================================
    --- 
    doit.sh    (revision 7)
    +++ 
    doit.sh    (working copy)
    @@ -
    49,+49,@@
         echo 
    "##### COMPILE GSC_ASTAR.CPP #####"
         
    $cc $options -c gsc_astar.cpp -o objects_normal/gsc_astar.opp
         
    echo "##### COMPILE GSC_MYSQL.CPP #####"
    -    $cc $options -c gsc_mysql.cpp -o objects_normal/gsc_mysql.opp -lmysqlclient -L/usr/lib/mysql
    +    $cc $options -c gsc_mysql.cpp -o objects_normal/gsc_mysql.opp -lmysqlclient -L./vendors/lib
         
    echo "##### COMPILE SERVER.CPP #####"
         
    $cc $options -c server.-o objects_normal/server.opp -D SERVER_PORT=8000
         
    echo "##### COMPILE GSC_MEMORY.CPP #####"
    @@ -122,13 +122,13 @@
     
         
    mkdir -p objects_$1
         
    echo "##### COMPILE $1 LIBCOD.CPP #####"
    -    #$cc $options $constants -o objects_$1/libcod.opp -c libcod.cpp
    +    $cc $options $constants -o objects_$1/libcod.opp -c libcod.cpp
         
    echo "##### COMPILE $1 GSC.CPP #####"
         
    $cc $options $constants -o objects_$1/gsc.opp -c gsc.cpp
         
    echo "##### COMPILE $1 GSC_PLAYER.CPP #####"
    -    #$cc $options $constants -o objects_$1/gsc_player.opp -c gsc_player.cpp
    +    $cc $options $constants -o objects_$1/gsc_player.opp -c gsc_player.cpp
         
    echo "##### COMPILE $1 GSC_UTILS.CPP #####"
    -    #$cc $options $constants -o objects_$1/gsc_utils.opp -c gsc_utils.cpp
    +    $cc $options $constants -o objects_$1/gsc_utils.opp -c gsc_utils.cpp
     
         
    echo "##### LINK lib$1.so #####"
         
    objects="$(ls objects_normal/*.opp) $(ls objects_$1/*.opp)"
    Indexfunctions.hpp
    ===================================================================
    --- 
    functions.hpp    (revision 7)
    +++ 
    functions.hpp    (working copy)
    @@ -
    6,+6,@@
     
    // CoD2 1.2 = 80601F2
     
    static int trap_Argc()
     {
    -    
    #if COD2_VERSION == COD2_VERSION_1_2
    +    #if COD2_VERSION == COD2_VERSION_1_0
    +        return *(int *)0x0819BE80;
    +    
    #elif COD2_VERSION == COD2_VERSION_1_2
             
    return *(int *)0x0819E080;
         
    #elif COD2_VERSION == COD2_VERSION_1_3
             
    return *(int *)0x0819F100;
    @@ -
    17,+19,@@
     }
     
     
    typedef int (*trap_Argv_t)(unsigned int paramchar *bufint bufLen);
    -
    #if COD2_VERSION == COD2_VERSION_1_2
    +#if COD2_VERSION == COD2_VERSION_1_0
    +    static trap_Argv_t trap_Argv = (trap_Argv_t)0x08060074;
    +
    #elif COD2_VERSION == COD2_VERSION_1_2
         
    static trap_Argv_t trap_Argv = (trap_Argv_t)0x08060280;
     
    #elif COD2_VERSION == COD2_VERSION_1_3
         
    static trap_Argv_t trap_Argv = (trap_Argv_t)0x08060278;
    @@ -
    28,+32,10 @@
     
     
     
    typedef int (*ClientCommand_t)(int clientNum);
    -
    #if COD2_VERSION == COD2_VERSION_1_2
    +#if COD2_VERSION == COD2_VERSION_1_0
    +    static ClientCommand_t ClientCommand = (ClientCommand_t)0x080FE998// search 'say_team' and see code xref function
    +    static int hook_ClientCommand_call 0x0808F281;
    +
    #elif COD2_VERSION == COD2_VERSION_1_2
         
    static ClientCommand_t ClientCommand = (ClientCommand_t)0x08100D1E;
         static 
    int hook_ClientCommand_call 0x08090B0C;
     
    #elif COD2_VERSION == COD2_VERSION_1_3
    @@ -42,+49,10 @@
     
    #endif
     
     
    typedef short (*codscript_call_callback_entity_t)(int selfint callbackint params);
    -
    #if COD2_VERSION == COD2_VERSION_1_2
    +#if COD2_VERSION == COD2_VERSION_1_0
    +    static codscript_call_callback_entity_t codscript_call_callback_entity = (codscript_call_callback_entity_t)0x08118DF4// search 'badMOD'
    +
    +
    #elif COD2_VERSION == COD2_VERSION_1_2
         
    static codscript_call_callback_entity_t codscript_call_callback_entity = (codscript_call_callback_entity_t)0x0811B128;
     
    #elif COD2_VERSION == COD2_VERSION_1_3
         
    static codscript_call_callback_entity_t codscript_call_callback_entity = (codscript_call_callback_entity_t)0x0811B284;
    @@ -
    52,+62,@@
     
    #endif
     
     
    typedef int (*codscript_callback_finish_t)(short callback_handle);
    -
    #if COD2_VERSION == COD2_VERSION_1_2
    +#if COD2_VERSION == COD2_VERSION_1_0
    +    static codscript_callback_finish_t codscript_callback_finish = (codscript_callback_finish_t)0x08083B8E;
    +
    #elif COD2_VERSION == COD2_VERSION_1_2
         
    static codscript_callback_finish_t codscript_callback_finish = (codscript_callback_finish_t)0x0808410A;
     
    #elif COD2_VERSION == COD2_VERSION_1_3
         
    static codscript_callback_finish_t codscript_callback_finish = (codscript_callback_finish_t)0x080841D6;
    @@ -
    61,+73,@@
         static 
    codscript_callback_finish_t codscript_callback_finish = (codscript_callback_finish_t)NULL;
     
    #endif
     
    -#endif
    No newline at end of file
    +#endif
    Indexgsc_player.cpp
    ===================================================================
    --- 
    gsc_player.cpp    (revision 7)
    +++ 
    gsc_player.cpp    (working copy)
    @@ -
    2,+2,10 @@
     
     
    #if COMPILE_PLAYER == 1
     
    -#if COD2_VERSION == COD2_VERSION_1_2
    +#if COD2_VERSION == COD2_VERSION_1_0
    +    int playerStates 0x086F1480// search 'winner'
    +    int sizeOfPlayer 0x28A4;
    +
    #elif COD2_VERSION == COD2_VERSION_1_2
         
    int playerStates 0x08705480// as in game initialisation "------- Game Initializati"
         
    int sizeOfPlayer 0x28A4;
         
    // memset(&playerStates_8705480, 0, 0xA2900u);  
    @@ -202,+205,@@
             return 
    stackReturnInt(0);
         }
     
    -    
    #if COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
    +    #if COD2_VERSION == COD2_VERSION_1_0 || COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x26FD);
         
    #elif COD_VERSION == COD4_1_7
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x2FA7);
    @@ -
    227,+230,@@
             return 
    stackReturnInt(0);
         }
     
    -    
    #if COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
    +    #if COD2_VERSION == COD2_VERSION_1_0 || COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x26FD);
         
    #elif COD_VERSION == COD4_1_7
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x2FA7);
    @@ -
    253,+256,@@
             return 
    stackReturnInt(0);
         }
         
    -    
    #if COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
    +    #if COD2_VERSION == COD2_VERSION_1_0 || COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x26FC);
         
    #elif COD_VERSION == COD4_1_7
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x2FA6);
    @@ -
    279,+282,@@
             return 
    stackReturnInt(0);
         }
         
    -    
    #if COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
    +    #if COD2_VERSION == COD2_VERSION_1_0 || COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x26FC);
         
    #elif COD_VERSION == COD4_1_7
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x2FA6);
    @@ -
    305,+308,@@
             return 
    stackReturnInt(0);
         }
     
    -    
    #if COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
    +    #if COD2_VERSION == COD2_VERSION_1_0 || COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x26E8);
         
    #elif COD_VERSION == COD4_1_7
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x2FB4);
    @@ -
    332,+335,@@
             return 
    stackReturnInt(0);
         }
         
    -    
    #if COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
    +    #if COD2_VERSION == COD2_VERSION_1_0 || COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x26E8);
         
    #elif COD_VERSION == COD4_1_7
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x2FB4);
    @@ -
    358,+361,@@
             return 
    stackReturnInt(0);
         }
         
    -    
    #if COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
    +    #if COD2_VERSION == COD2_VERSION_1_0 || COD2_VERSION == COD2_VERSION_1_2 || COD2_VERSION == COD2_VERSION_1_3
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x26E9);
         
    #elif COD_VERSION == COD4_1_7
             
    unsigned char *aim_address = (unsigned char *)(PLAYERSTATE(playerid) + 0x2FB5);
    @@ -
    546,+549,@@
         
    int ping = *(unsigned int *)(info_player info_port_offset);
         return 
    stackPushInt(ping);
     }
    -
    #endif
    No newline at end of file
    +#endif
    Indexlibcod.cpp
    ===================================================================
    --- 
    libcod.cpp    (revision 7)
    +++ 
    libcod.cpp    (working copy)
    @@ -
    552,+552,@@
     
     
     
    typedef void (*gametype_scripts_t)();
    -
    #if COD_VERSION == COD2_1_2
    +#if COD_VERSION == COD2_1_0
    +    gametype_scripts_t gametype_scripts = (gametype_scripts_t)0x0810DDEE
    +
    #elif COD_VERSION == COD2_1_2
         
    gametype_scripts_t gametype_scripts = (gametype_scripts_t)0x0811012A;
     
    #elif COD_VERSION == COD2_1_3
         
    gametype_scripts_t gametype_scripts = (gametype_scripts_t)0x08110286;
    @@ -
    562,+564,@@
     
    #endif
     
     
    typedef int (*codscript_load_function_t)(char *filechar *function, int isNeeded);
    -
    #if COD_VERSION == COD2_1_2
    +#if COD_VERSION == COD2_1_0
    +    codscript_load_function_t codscript_load_function = (codscript_load_function_t)0x0810DD70;
    +
    #elif COD_VERSION == COD2_1_2
         
    codscript_load_function_t codscript_load_function = (codscript_load_function_t)0x081100AC;
     
    #elif COD_VERSION == COD2_1_3
         
    codscript_load_function_t codscript_load_function = (codscript_load_function_t)0x08110208;
    @@ -
    1447,+1451,@@
         
             
    setbuf(stdoutNULL); // otherwise the printf()'s are printed at crash/end
     
    -        #if COD_VERSION == COD2_1_2
    +        #if COD_VERSION == COD2_1_0
    +            printf("> [INFO] Compiled for: CoD2 1.0\n");
    +        
    #elif COD_VERSION == COD2_1_2
                 
    printf("> [INFO] Compiled for: CoD2 1.2\n");
             
    #elif COD_VERSION == COD2_1_3
                 
    printf("> [INFO] Compiled for: CoD2 1.3\n");
    @@ -
    2008,+2014,@@
         return 
    rf;
     }
     
    -
    -
     
    #pragma GCC visibility pop
     
    -#endif
    No newline at end of file
    +#endif 
    io println, AWSD (left, forward, back, right), lean left/right, mysql and space works.

    (Currently available via https://github.com/M-itch/libcod)
    Last edited by Mitch; 17th November 2013 at 20:52.

  2. The Following 2 Users Say Thank You to Mitch For This Useful Post:

    kung foo man (17th November 2013),YuriJurek (26th November 2013)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •