| 53 | 
   | 
         { | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 54 | 
   | 
                 DWORD err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 55 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 | 56 | 
 < | 
                 DDrStartupMessage("Daodan: Loading real Bink DLL"); | 
 
 
 
 
 
 
 
 
 
 | 56 | 
 > | 
                 STARTUPMESSAGE("Loading real Bink DLL", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 57 | 
   | 
                 realbink = LoadLibrary("realbink.dll"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 58 | 
   | 
                 err = GetLastError(); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 59 | 
   | 
                 if(realbink) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 62 | 
   | 
                         BinkBufferBlit = (BINKBUFFERBLIT)GetProcAddress(realbink, "_BinkBufferBlit@12"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 63 | 
   | 
                         if(!BinkBufferBlit) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 64 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 65 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkBufferBlit"); | 
 
 
 
 
 
 
 
 
 
 | 65 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkBufferBlit", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 66 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 67 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 68 | 
   | 
                         BinkBufferClose = (BINKBUFFERCLOSE)GetProcAddress(realbink, "_BinkBufferClose@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 69 | 
   | 
                         if(!BinkBufferClose) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 70 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 71 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkBufferClose"); | 
 
 
 
 
 
 
 
 
 
 | 71 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkBufferClose", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 72 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 73 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 74 | 
   | 
                         BinkBufferLock = (BINKBUFFERLOCK)GetProcAddress(realbink, "_BinkBufferLock@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 75 | 
   | 
                         if(!BinkBufferLock) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 76 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 77 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkBufferLock"); | 
 
 
 
 
 
 
 
 
 
 | 77 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkBufferLock", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 78 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 79 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 80 | 
   | 
                         BinkBufferOpen = (BINKBUFFEROPEN)GetProcAddress(realbink, "_BinkBufferOpen@16"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 81 | 
   | 
                         if(!BinkBufferOpen) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 82 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 83 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkBufferOpen"); | 
 
 
 
 
 
 
 
 
 
 | 83 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkBufferOpen", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 84 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 85 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 86 | 
   | 
                         BinkBufferSetOffset = (BINKBUFFERSETOFFSET)GetProcAddress(realbink, "_BinkBufferSetOffset@12"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 87 | 
   | 
                         if(!BinkBufferSetOffset) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 88 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 89 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkBufferSetOffset"); | 
 
 
 
 
 
 
 
 
 
 | 89 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkBufferSetOffset", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 90 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 91 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 92 | 
   | 
                         BinkBufferUnlock = (BINKBUFFERUNLOCK)GetProcAddress(realbink, "_BinkBufferUnlock@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 93 | 
   | 
                         if(!BinkBufferUnlock) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 94 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 95 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkBufferUnlock"); | 
 
 
 
 
 
 
 
 
 
 | 95 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkBufferUnlock", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 96 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 97 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 98 | 
   | 
                         BinkClose = (BINKCLOSE)GetProcAddress(realbink, "_BinkClose@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 99 | 
   | 
                         if(!BinkClose) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 100 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 101 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkClose"); | 
 
 
 
 
 
 
 
 
 
 | 101 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkClose", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 102 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 103 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 104 | 
   | 
                         BinkCopyToBuffer = (BINKCOPYTOBUFFER)GetProcAddress(realbink, "_BinkCopyToBuffer@28"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 105 | 
   | 
                         if(!BinkCopyToBuffer) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 106 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 107 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkCopyToBuffer"); | 
 
 
 
 
 
 
 
 
 
 | 107 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkCopyToBuffer", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 108 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 109 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 110 | 
   | 
                         BinkDoFrame = (BINKDOFRAME)GetProcAddress(realbink, "_BinkDoFrame@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 111 | 
   | 
                         if(!BinkDoFrame) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 112 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 113 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkDoFrame"); | 
 
 
 
 
 
 
 
 
 
 | 113 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkDoFrame", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 114 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 115 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 116 | 
   | 
                         BinkGetRects = (BINKGETRECTS)GetProcAddress(realbink, "_BinkGetRects@8"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 117 | 
   | 
                         if(!BinkGetRects) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 118 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 119 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkGetRects"); | 
 
 
 
 
 
 
 
 
 
 | 119 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkGetRects", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 120 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 121 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 122 | 
   | 
                         BinkNextFrame = (BINKNEXTFRAME)GetProcAddress(realbink, "_BinkNextFrame@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 123 | 
   | 
                         if(!BinkNextFrame) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 124 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 125 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkNextFrame"); | 
 
 
 
 
 
 
 
 
 
 | 125 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkNextFrame", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 126 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 127 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 128 | 
   | 
                         BinkOpen = (BINKOPEN)GetProcAddress(realbink, "_BinkOpen@8"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 129 | 
   | 
                         if(!BinkOpen) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 130 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 131 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkOpen"); | 
 
 
 
 
 
 
 
 
 
 | 131 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkOpen", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 132 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 133 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 134 | 
   | 
                         BinkOpenDirectSound = (BINKOPENDIRECTSOUND)GetProcAddress(realbink, "_BinkOpenDirectSound@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 135 | 
   | 
                         if(!BinkOpenDirectSound) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 136 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 137 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkOpenDirectSound"); | 
 
 
 
 
 
 
 
 
 
 | 137 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkOpenDirectSound", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 138 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 139 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 140 | 
   | 
                         BinkService = (BINKSERVICE)GetProcAddress(realbink, "_BinkService@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 141 | 
   | 
                         if(!BinkService) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 142 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 143 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkService"); | 
 
 
 
 
 
 
 
 
 
 | 143 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkService", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 144 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 145 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 146 | 
   | 
                         BinkSetIOSize = (BINKSETIOSIZE)GetProcAddress(realbink, "_BinkSetIOSize@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 147 | 
   | 
                         if(!BinkSetIOSize) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 148 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 149 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkSetIOSize"); | 
 
 
 
 
 
 
 
 
 
 | 149 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkSetIOSize", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 150 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 151 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 152 | 
   | 
                         BinkSetSoundOnOff = (BINKSETSOUNDONOFF)GetProcAddress(realbink, "_BinkSetSoundOnOff@8"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 153 | 
   | 
                         if(!BinkSetSoundOnOff) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 154 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 155 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkSetSoundOnOff"); | 
 
 
 
 
 
 
 
 
 
 | 155 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkSetSoundOnOff", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 156 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 157 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 158 | 
   | 
                         BinkSetSoundSystem = (BINKSETSOUNDSYSTEM)GetProcAddress(realbink, "_BinkSetSoundSystem@8"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 159 | 
   | 
                         if(!BinkSetSoundSystem) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 160 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 161 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkSetSoundSystem"); | 
 
 
 
 
 
 
 
 
 
 | 161 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkSetSoundSystem", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 162 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 163 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 164 | 
   | 
                         BinkSetVolume = (BINKSETVOLUME)GetProcAddress(realbink, "_BinkSetVolume@8"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 165 | 
   | 
                         if(!BinkSetVolume) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 166 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 167 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkSetVolume"); | 
 
 
 
 
 
 
 
 
 
 | 167 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkSetVolume", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 168 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 169 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 170 | 
   | 
                         BinkWait = (BINKWAIT)GetProcAddress(realbink, "_BinkWait@4"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 171 | 
   | 
                         if(!BinkWait) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 172 | 
   | 
                         { | 
 
 
 
 
 
 
 
 
 
 
 
 | 173 | 
 < | 
                                 DDrStartupMessage("Daodan: Retrieving function address from real Bink DLL failed for: BinkWait"); | 
 
 
 
 
 
 
 
 
 
 | 173 | 
 > | 
                                 STARTUPMESSAGE("Retrieving function address from real Bink DLL failed for: BinkWait", 0); | 
 
 
 
 
 
 
 
 
 
 
 
 | 174 | 
   | 
                                 goto exit_err; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 175 | 
   | 
                         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 176 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 177 | 
   | 
                 } else { | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 178 | 
   | 
                         char msg[100]; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 179 | 
   | 
                         FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err, 0, msg, 100, NULL); | 
 
 
 
 
 
 
 
 
 
 
 
 | 180 | 
 < | 
                         DDrStartupMessage("Daodan: Loading real Bink DLL failed with error %i: %s", err, msg); | 
 
 
 
 
 
 
 
 
 
 | 180 | 
 > | 
                         STARTUPMESSAGE("Loading real Bink DLL failed with error %i: %s", err, msg); | 
 
 
 
 
 
 
 
 
 
 
 
 | 181 | 
   | 
                 } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 182 | 
   | 
         } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 183 | 
   | 
  |