Changeset 569 for Daodan/MSVC/Daodan.c


Ignore:
Timestamp:
Jul 14, 2010, 9:35:40 AM (14 years ago)
Author:
gumby
Message:

Fixes, fixes, everywhere

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Daodan/MSVC/Daodan.c

    r567 r569  
    8383        if (patch_pathfinding)
    8484        {
     85                const char pathfinding[2] = {0x90 , 0xE9 };
    8586                DDrPatch_Byte  (OniExe + 0x0010b03b, 0x20);
    8687                DDrPatch_Byte  (OniExe + 0x0010b04c, 0x20);
     88
     89                //other stuff
     90                DDrPatch_Const(0x440789, pathfinding);
    8791        }
    8892       
     
    99103        if (patch_directinput)
    100104                DDrPatch_Byte  (OniExe + 0x00002e6d, 0xeb);
    101        
     105
    102106        if (patch_wpfadetime)
    103107        {
     
    111115        }
    112116       
     117        // FIXME: add switches
     118        //pathfinding fix
     119
     120       
     121
    113122       
    114123        // Hackish fix for Konoko not kicking guns
     
    208217                DDrPatch_Int32 (OniExe + 0x000d3570, 0xc3c03366);
    209218       
     219        if (patch_bsl)
     220        {
     221                //Calculating the value of the needed offset is much more reliable when the compiler does it for you.
     222
     223                //TODO: fix moonshadow.
     224                Character * Chr = 0;
     225                int NoPath = (int)&(Chr[0].RegenHax) & 0x000000FF;
     226                const char regen_patch[] =
     227                {0x90, 0x90, 0x90, 0x90, 0x90,                          // mov    al, _WPgRegenerationCheat     -> NOOP
     228                0x90, 0x90,                                                                     // test   al, al                                        -> NOOP
     229                0x90, 0x90,                                                                     // jz     short loc_51BB98                      -> NOOP
     230                0x8B, 0x86, (char)NoPath, 0x01, 0x00, 0x00, // mov     eax, [esi+Character.field_1E8]
     231                                                                                                        //      -> mov     eax, [esi+Character.RegenHax]
     232                0x85, 0xC0,                                                                     // test eax, eax
     233                0x74, 0x21                                                                      // jnz 0x21 -> jz 0x21
     234                };     
     235                DDrPatch_Const(0x0051BB64, regen_patch);
     236        }
     237
     238
    210239        return true;
    211240}
     
    562591        if (patch_cheatsenabled)
    563592                DDrPatch_MakeJump(ONrPersist_GetWonGame, DDrPersist_GetWonGame);
    564 #if 0
     593//#if 0
    565594        // Windowed mode
    566         if (patch_usedaodangl)
    567         {
     595//      if (patch_usedaodangl)
     596        {
     597        DDrPatch_NOOP((char*)0x004032B7, 6);
     598        DDrPatch_MakeCall((char*)0x004032B7, LIiP_SetCursorPosHook);
     599       
     600        DDrPatch_NOOP((char*)0x00403349, 6);
     601        DDrPatch_MakeCall((char*)0x00403349, LIiP_SetCursorPosHook);
    568602                DDrPatch_MakeJump(ONrPlatform_Initialize, DDrPlatform_Initialize);
    569603                DDrPatch_MakeJump(gl_platform_initialize, daodangl_platform_initialize);
    570604        }
    571 #endif
     605//#endif
    572606        // Hacked windowed mode (for when daodangl isn't working properly)
    573607        //if (patch_windowhack)
    574608
    575                 DDrWindowHack_Install();
     609        //      DDrWindowHack_Install();
    576610       
    577611        if (patch_daodaninit)
Note: See TracChangeset for help on using the changeset viewer.