Changeset 572 for Daodan


Ignore:
Timestamp:
Aug 29, 2010, 9:13:47 PM (14 years ago)
Author:
gumby
Message:

Stuff

Location:
Daodan/MSVC
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • Daodan/MSVC/Daodan.c

    r569 r572  
    5353bool patch_bsl = true;
    5454bool patch_cheater = true;
    55 
    56 // bool patch_newweapon = true;
    57 
     55bool patch_newweapon = true;
    5856bool opt_usedaodanbsl = true;
    5957bool opt_border = true;
     
    189187
    190188        //Test newweap patch
    191 //      if (patch_newweapon) {
     189        if (patch_newweapon) {
    192190               
    193191                //Makes it always say "Recieved weapon_name."
    194192                //Needs check for loc_4DFC66
    195                 DDrPatch_NOOP( OniExe + 0x000E4DF8,2);
     193                //DDrPatch_NOOP( OniExe + 0x000E4DF8,2);
    196194
    197195                //Adds Weapon name and ammo meter to pickup autoprompt
     
    203201                //DDrPatch_Int32( 0x0042E3D5, (int)&DDrDSayColors );
    204202                //DDrPatch_Int32( 0x0042E3DA, (int)&DDrDSayColors );
    205 //      }
     203        }
    206204       
    207205        // Disable loading the vtuneapi.dll
     
    286284                        else if (!_stricmp(name, "switch"))
    287285                                M3gResolutionSwitch = !_stricmp(inifile_cleanstr(value), "true");
     286                        //else if (!_stricmp(name, "devmode"))
     287                                //turn_dev_mode_on = !_stricmp(inifile_cleanstr(value), "true");
    288288                        else
    289289                                DDrStartupMessage("unrecognised option \"%s\"", name);
     
    344344                        else if (!_stricmp(name, "cheater"))
    345345                                patch_cheater = !_stricmp(inifile_cleanstr(value), "true");
     346                        else if (!_stricmp(name, "newweap"))
     347                                patch_newweapon = !_stricmp(inifile_cleanstr(value), "true");
    346348                        else
    347349                                DDrStartupMessage("unrecognised patch \"%s\"", name);
     
    465467void DDrConfig()
    466468{
    467 /*      if (GetFileAttributes("daodan.ini") == INVALID_FILE_ATTRIBUTES)
    468         {
     469
     470        if (GetFileAttributes("daodan.ini") == INVALID_FILE_ATTRIBUTES)
     471        {
     472                FILE* fp;
    469473                DDrStartupMessage("daodan.ini doesn't exist, creating");
    470                 FILE* fp = fopen("daodan.ini", "w");
     474                fp = fopen("daodan.ini", "w");
    471475                if (fp)
    472476                {
     
    478482        DDrStartupMessage("parsing daodan.ini...");
    479483        if (!inifile_read("daodan.ini", DDrIniCallback))
    480                 DDrStartupMessage("error reading daodan.ini, check your syntax!");*/
     484                DDrStartupMessage("error reading daodan.ini, check your syntax!");
    481485        DDrStartupMessage("finished parsing");
    482486}
     
    591595        if (patch_cheatsenabled)
    592596                DDrPatch_MakeJump(ONrPersist_GetWonGame, DDrPersist_GetWonGame);
    593 //#if 0
     597
    594598        // Windowed mode
    595 //      if (patch_usedaodangl)
     599        if (patch_usedaodangl)
    596600        {
    597601        DDrPatch_NOOP((char*)0x004032B7, 6);
     
    603607                DDrPatch_MakeJump(gl_platform_initialize, daodangl_platform_initialize);
    604608        }
    605 //#endif
    606609        // Hacked windowed mode (for when daodangl isn't working properly)
    607         //if (patch_windowhack)
    608 
    609         //      DDrWindowHack_Install();
     610        else if (patch_windowhack)
     611                DDrWindowHack_Install();
    610612       
    611613        if (patch_daodaninit)
  • Daodan/MSVC/Daodan_BSL.c

    r569 r572  
    55#include <math.h>
    66#include "inifile.h"
    7 
     7#include "Flatline.h"
    88#include "Daodan_BSL.h"
    99#include "Flatline_BSL.h"
     
    201201        ret->type = sl_int32;
    202202
    203         if (numargs >= 2) {
     203        if (args[1].value_int32) {
    204204                *health = args[1].value_int32;
    205205        }
     
    265265}
    266266uint16_t ONICALL bsl_location(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret) {
    267         int index;
     267        int index, i;
    268268        float* loc;
    269269        Character* Chr;
     270                numargs = 0;
     271        for(i = 0; args[i].type < sl_void; i++)
     272        {
     273                numargs++;
     274        }
     275
     276
    270277        if (numargs < 2) return 1;
    271278        if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
     
    273280        if (index == -1) index = args[0].value_int32;
    274281        Chr = ONgGameState->CharacterStorage;
    275        
    276         if (!strcmp(args[1].value_str32,"X") || !strcmp(args[1].value_str32,"x"))
    277         loc = &(Chr[index].Position.X);
    278         else if (!strcmp(args[1].value_str32,"Y") || !strcmp(args[1].value_str32,"y"))
    279         loc = &(Chr[index].Position.Y);
    280         else if (!strcmp(args[1].value_str32,"Z") || !strcmp(args[1].value_str32,"z"))
    281         loc = &(Chr[index].Position.Z);
     282        if(numargs == 3)
     283        {
     284                if (!strcmp(args[1].value_str32,"X") || !strcmp(args[1].value_str32,"x"))
     285                        loc = &(Chr[index].Position.X);
     286                else if (!strcmp(args[1].value_str32,"Y") || !strcmp(args[1].value_str32,"y"))
     287                        loc = &(Chr[index].Position.Y);
     288                else if (!strcmp(args[1].value_str32,"Z") || !strcmp(args[1].value_str32,"z"))
     289                        loc = &(Chr[index].Position.Z);
     290        }
    282291        else if (numargs == 4) {
    283                 //currently broken. crashes oni.
    284                 Chr[index].Position.X = args[1].value_float;
    285                 Chr[index].Position.Y = args[2].value_float;
    286                 Chr[index].Position.Z = args[3].value_float;
     292                ActiveCharacter* Active = (ActiveCharacter*)ONrGetActiveCharacter(&Chr[index]);
     293                Chr[index].Location.X = args[1].value_float;
     294                Chr[index].Location.Y = args[2].value_float;
     295                Chr[index].Location.Z = args[3].value_float;
     296                if(Active)
     297                {
     298                        Active->PhyContext->Position = Chr[index].Location;
     299                }
    287300                ret->value_float = 1;
    288301                ret->type = sl_float;
     
    348361        int index;
    349362        char* name;
     363
    350364        if (numargs == 0) index = 0;
    351365        else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
     
    381395        RGBA color;
    382396        RGBA shade;
    383        
     397        int i;
     398        numargs = 0;
     399        for(i = 0; args[i].type < sl_void; i++)
     400        {
     401                numargs++;
     402        }
    384403        if(numargs == 0) return 0;
    385404        if(numargs > 1 ) color.R = (char)args[1].value_int32;
     
    492511        }
    493512        Active->Input.Current.Actions1 = Active->Input.Current.Actions1 | Input1;
    494         Active->Input.Current.Actions2 = Active->Input.Current.Actions1 | Input2;
     513        Active->Input.Current.Actions2 = Active->Input.Current.Actions2 | Input2;
    495514        if( Input1 + Input2 == 0 ) {
    496515                DDrConsole_PrintF("Func \"%s\", File \"%s\", Line %d: semantic error, \"%s\": No valid keys given.", callinfo->name, callinfo->calllocation, callinfo->linenumber, callinfo->name);
     
    856875
    857876}
     877
    858878void* TSrTest = 0;
    859879uint16_t ONICALL new_text(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
     
    861881        void* TSFFTahoma;
    862882        int returnval;
    863         TMrInstance_GetDataPtr( 'TSFF', "Tahoma", &TSFFTahoma);
     883
     884        if(!TSrTest){
     885                TMrInstance_GetDataPtr( 'TSFF', "Tahoma", &TSFFTahoma);
    864886        returnval = TSrContext_New( TSFFTahoma, 7, 1, 1,  0, &TSrTest);
     887        }
     888        DDrPatch_MakeCall(0x004FBCEA, DDrText_Hook);
     889       
     890        *dontuse2 = 1;
    865891        return 0;
    866892}
     
    883909        SLrScript_Command_Register_ReturnType("d_getindex","Converts a character's name to its index", "ai_name:string", sl_int32, bsl_nametoindex);
    884910        SLrScript_Command_Register_ReturnType("d_health","Gets or sets a character's health", "[ai_name:string | script_id:int] [newhealth:int]", sl_str32, bsl_health);
    885         SLrScript_Command_Register_ReturnType("d_regen","Gets or sets a character's health", "[ai_name:string | script_id:int] [newhealth:int]", sl_str32, bsl_regen);
     911        SLrScript_Command_Register_ReturnType("d_regen","Gets or sets a character's regeneration abilities", "[ai_name:string | script_id:int] [newhealth:int]", sl_str32, bsl_regen);
    886912        SLrScript_Command_Register_ReturnType("d_maxhealth","Gets or sets a character's maximum health", "[ai_name:string | script_id:int] [newmaxhealth:int] [scalehealth:bool]", sl_str32, bsl_maxhealth);
    887913        SLrScript_Command_Register_ReturnType("d_powerup","Gets or sets a character's powerups", "[ai_name:string | script_id:int] powerup:string", sl_int32, bsl_powerup);
     
    889915        SLrScript_Command_Register_ReturnType("d_holdkey","Makes a character hold a key", "[ai_name:string | script_id:int] frames:int keys:string", sl_int32, bsl_holdkey);
    890916        SLrScript_Command_Register_ReturnType("d_isheld","Checks if player is holding a key", "[ai_name:string | script_id:int] [keys:string]", sl_int32, bsl_isheld);
    891         SLrScript_Command_Register_ReturnType("d_location","Returns the X, Y or Z coord of a character", "ai_name:string | script_id:int xyz:string [newlocation:float]", sl_float, bsl_location);
     917        SLrScript_Command_Register_ReturnType("d_location","Returns the X, Y or Z coord of a character", "", sl_float, bsl_location);
    892918        SLrScript_Command_Register_ReturnType("d_distance","Returns the distance between two characters", "ai_name:string | script_id:int ai_name:string | script_id:int", sl_float, bsl_distance);
    893919        SLrScript_Command_Register_Void("d_waitforkey","Waits for a keypress from the player", "key:string", bsl_waitforkey);
     
    900926
    901927        SLrScript_Command_Register_Void("sprintf", "C-style sprintf.", "", bsl_sprintf);
    902         SLrScript_Command_Register_ReturnType("st", "prints to console in color", "text:string color1:int color2:int", sl_void, bsl_dprintcolored);
     928        SLrScript_Command_Register_ReturnType("st", "prints to console in color", "", sl_void, bsl_dprintcolored);
     929        SLrScript_Command_Register_ReturnType("d_dprint", "prints to console in color", "", sl_void, bsl_dprintcolored);
    903930       
    904931        //Flatline
  • Daodan/MSVC/Daodan_Cheater.h

    r567 r572  
    4646
    4747extern oniCheatCode DDr_CheatTable[];
    48 
     48extern int turn_dev_mode_on;
    4949uint8_t ONICALL DDrCheater(uint32_t cheat);
    5050void __stdcall FallingFrames(void* Ebp);
  • Daodan/MSVC/Daodan_Utility.c

    r567 r572  
    8888}
    8989       
    90 void ONICALL DDrWeapon2Message(int* weapon, void* output_ptr) {
     90void ONICALL DDrWeapon2Message(int* weapon, void* output_ptr)
     91{
    9192        char buffer[128] = {0};
    9293        char* weapon_string = (char*)(*(weapon + 1)+0x5C);
     
    107108
    108109
    109 void ONICALL DDrMake_Weapon_Message(char* weapon_string, char* output_ptr) {
     110void ONICALL DDrMake_Weapon_Message(char* weapon_string, char* output_ptr)
     111{
    110112        char* weapon_msg = NULL;        //The normal "You have recieved X" message.
    111113        char weapon_name[64] = {'\0'};  //The stripped weapon name
     
    125127       
    126128}
     129        typedef struct
     130        {
     131                uint16_t x;
     132                uint16_t y;
     133               
     134        } IMtPoint2D;
     135                IMtPoint2D Point = {256, 250};
     136                extern void* TSrTest;
     137void ONICALL DDrText_Hook()
     138{
     139        if(TSrTest)
     140        {
     141                TSrContext_DrawText(TSrTest, "FINALLY THIS BLOODY TEXT THING WORKS\n Gotta call it at the right point...", 128, 0, &Point);     
     142        }
     143COrConsole_StatusLine_Display();
     144
     145}
  • Daodan/MSVC/Daodan_Utility.h

    r567 r572  
    1212void ONICALL DDrMake_Weapon_Message(char* weapon_string, char* output_ptr);
    1313void ONICALL DDrWeapon2Message(int* weapon, void* output_ptr);
     14void ONICALL DDrText_Hook();
    1415#endif
  • Daodan/MSVC/Flatline.c

    r569 r572  
    506506        return -1;
    507507}
    508 
     508        typedef struct
     509        {
     510                uint16_t x;
     511                uint16_t y;
     512               
     513        } IMtPoint2D;
    509514static flatline_packet cache_input = {0};
    510515extern void* TSrTest;
     
    562567        if( TSrTest )
    563568        {
    564         OniRectangle TextRect = { 20, 20, 50, 50 };
    565                 TSrContext_DrawText(TSrTest, "Testing woohoo", 0xFF, 0, &TextRect);
     569//              OniRectangle TextRect = { 128, 128, 256, 256 };
     570                IMtPoint2D Point = {50, 50};
     571                //TSrContext_DrawText(TSrTest, "Testing woohoo", 255, 0, &Point);
     572                TSrContext_DrawText(TSrTest, "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW", 255, 0, &Point);   
     573               
    566574        }
    567575        if(!(server_started || client_connected)) return ONgGameState;
  • Daodan/MSVC/Oni_Symbols.c

    r569 r572  
    130130DefFunc( COrMessage_Print                                               , 0x004304B0 );
    131131DefFunc( COrTextArea_Print                                              , 0x00431340 );
    132 
     132DefFunc( COrConsole_StatusLine_Display                  , 0x00431E70 );
    133133DefFunc( ONiGameState_FindAutoPromptMessage             , 0x004FDBE0 );
    134134DefFunc( ONiMain                                                                , 0x004d3280 );
  • Daodan/MSVC/Oni_Symbols.h

    r568 r572  
    105105
    106106typedef int ( *_COrMessage_Print)(char* Message, char* Key, void* noidea);
    107 
     107typedef void ( *_COrConsole_StatusLine_Display)();
    108108typedef int16_t ( *_TMrInstance_GetDataPtr)(int tag, char* name, void* pointer);
    109109typedef char*   ( *_TMrInstance_GetInstanceName)(void* InstancePointer);
     
    122122ExtFunc(SLrGlobalVariable_Register_Float);
    123123ExtFunc(SLrGlobalVariable_Register_String);
    124 
     124ExtFunc(COrConsole_StatusLine_Display);
    125125
    126126extern _UUrMachineTime_High UUrMachineTime_High;
  • Daodan/MSVC/daodan_gl.c

    r567 r572  
    55#include "Oni_Persistence.h"
    66#include "Daodan_Utility.h"
    7 
     7#include <gl/gl.h>
     8#include <gl/glu.h>
     9#include "gl/wglext.h"          //WGL extensions
     10#include "gl/glext.h"           //GL extensions
     11#include "Daodan_Win32.h"
    812#include "BFW_Utility.h"
    913
     
    4549        { 1920, 1440, 0, 0 },
    4650};
    47 
    48 short daodan_resdepths[] = { 16, 32 };
    49 
     51//Just going to always use 32 bits for now...
     52//short daodan_resdepths[] = { 16, 32 };
     53short daodan_resdepths[] = { 32 };
    5054DEVMODE orig_devmode, cur_devmode, new_devmode;
    5155
     
    8387{
    8488        unsigned int vmodes = 0;
    85         unsigned int screen_x = orig_devmode.dmPelsWidth;
    86         unsigned int screen_y = orig_devmode.dmPelsHeight;
     89        unsigned int screen_x = GetSystemMetrics(SM_CXSCREEN);
     90        unsigned int screen_y = GetSystemMetrics(SM_CYSCREEN);
    8791       
    8892        uint16_t i, j;
    8993       
    9094        DDrStartupMessage("listing display modes");
    91        
     95        /*
    9296        if (!M3gResolutionSwitch)
    9397                daodan_resdepths[0] = orig_devmode.dmBitsPerPel;
    94        
     98        */
    9599        for (i = 0; i < builtin_depths; i ++)
    96100        {
     
    192196        return 1;
    193197}
    194 
    195 void daodan_set_gamma(float gamma)
    196 {
    197         WORD ramp[3][256];
    198         int i;
    199 
    200         if (!gl_gamma_ramp_valid)
    201                 return;
    202 
    203         gamma = (1.0f - gamma) * 1.2f + 0.4f;
    204 
    205         for (i = 0; i < 256; i++)
    206         {
    207                 int value = (int)(pow(gl_gamma_ramp[i] / 65535.0f, gamma) * 65535.0f);
    208 
    209                 if (value < 0)
    210                         value = 0;
    211                 else if (value > 65535)
    212                         value = 65535;
    213 
    214                 ramp[0][i] = ramp[1][i] = ramp[2][i] = value;
    215         }
    216        
    217         if (gl_api->wglSetDeviceGammaRamp3DFX)
    218                 gl_api->wglSetDeviceGammaRamp3DFX(gl_eng->HDC, ramp);
    219         else
    220                 SetDeviceGammaRamp(gl_eng->HDC, ramp);
    221 }
    222 
    223198int ONICALL daodangl_platform_initialize()
    224199{
     
    265240                        gl_gamma_ramp_valid = 1;
    266241        }
    267        
     242        /*
    268243        if (gl_gamma_ramp_valid)
    269244                daodan_set_gamma(ONrPersist_GetGamma()); 
    270         else
     245        else*/
    271246                DDrStartupMessage("gamma adjustment not supported");
    272247       
  • Daodan/MSVC/daodan_gl.h

    r567 r572  
    1515void daodan_set_gamma(float gamma);
    1616int ONICALL daodangl_platform_initialize();
    17 
     17 daodan_init_msaa();
    1818#endif
Note: See TracChangeset for help on using the changeset viewer.