lsteamclient: Restore some 64-bit struct layout conversions

This commit is contained in:
Andrew Eikum 2019-06-27 08:59:19 -05:00
parent 01180245c6
commit 22354ec32f
3 changed files with 447 additions and 41 deletions

View file

@ -129,34 +129,132 @@ case 1023: /* FileDetailsResult_t_40 */
return 36;
#endif
#ifdef __x86_64__
case 4513: /* HTML_LinkAtPosition_t_32 */
return 24;
case 4514: /* HTML_JSAlert_t_16 */
return 12;
case 4515: /* HTML_JSConfirm_t_16 */
return 12;
case 4516: /* HTML_FileOpenDialog_t_24 */
return 20;
case 4517: /* HTML_ComboNeedsPaint_t_24 */
return 20;
case 4521: /* HTML_NewWindow_t_40 */
return 32;
case 4523: /* HTML_StatusText_t_16 */
case 513: /* LobbyCreated_t_16 */
return 12;
case 4524: /* HTML_ShowToolTip_t_16 */
return 12;
case 4525: /* HTML_UpdateToolTip_t_16 */
case 3415: /* RemoveAppDependencyResult_t_24 */
return 16;
case 4514: /* HTML_JSAlert_t_16 */
return 12;
case 3416: /* GetAppDependenciesResult_t_152 */
return 148;
case 4502: /* HTML_NeedsPaint_t_56 */
return 52;
case 4503: /* HTML_StartRequest_t_40 */
return 32;
case 1303: /* RemoteStorageAppSyncProgress_t_288 */
return 280;
case 152: /* MicroTxnAuthorizationResponse_t_24 */
return 16;
case 4505: /* HTML_URLChanged_t_48 */
return 36;
case 4506: /* HTML_FinishedRequest_t_24 */
return 20;
case 4507: /* HTML_OpenLinkInNewTab_t_16 */
return 12;
case 1307: /* RemoteStorageFileShareResult_t_280 */
return 272;
case 4508: /* HTML_ChangedTitle_t_16 */
return 12;
case 1309: /* RemoteStoragePublishFileResult_t_24 */
return 16;
case 1310: /* RemoteStorageGetPublishedFileDetailsResult_t_1744 */
return 1732;
case 1311: /* RemoteStorageDeletePublishedFileResult_t_16 */
return 12;
case 1312: /* RemoteStorageEnumerateUserPublishedFilesResult_t_416 */
return 412;
case 1313: /* RemoteStorageSubscribePublishedFileResult_t_16 */
return 12;
case 1314: /* RemoteStorageEnumerateUserSubscribedFilesResult_t_616 */
return 612;
case 1315: /* RemoteStorageUnsubscribePublishedFileResult_t_16 */
return 12;
case 1316: /* RemoteStorageUpdatePublishedFileResult_t_24 */
return 16;
case 1317: /* RemoteStorageDownloadUGCResult_t_296 */
return 288;
case 1318: /* RemoteStorageGetPublishedFileDetailsResult_t_9760 */
return 9748;
case 1319: /* RemoteStorageEnumerateWorkshopFilesResult_t_624 */
return 620;
case 1320: /* RemoteStorageGetPublishedItemVoteDetailsResult_t_32 */
return 28;
case 4521: /* HTML_NewWindow_t_40 */
return 32;
case 4523: /* HTML_StatusText_t_16 */
return 12;
case 1324: /* RemoteStorageUpdateUserPublishedItemVoteResult_t_16 */
return 12;
case 1325: /* RemoteStorageUserVoteDetails_t_24 */
return 16;
case 1326: /* RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_416 */
return 412;
case 1327: /* RemoteStorageSetUserPublishedFileActionResult_t_24 */
return 16;
case 1330: /* RemoteStoragePublishedFileUpdated_t_24 */
return 20;
case 5301: /* JoinPartyCallback_t_280 */
return 276;
case 5302: /* CreateBeaconCallback_t_16 */
return 12;
case 2103: /* HTTPRequestDataReceived_t_24 */
return 20;
case 4507: /* HTML_OpenLinkInNewTab_t_16 */
return 12;
case 2101: /* HTTPRequestCompleted_t_32 */
return 24;
case 4525: /* HTML_UpdateToolTip_t_16 */
return 12;
case 4503: /* HTML_StartRequest_t_40 */
return 32;
case 2102: /* HTTPRequestHeadersReceived_t_16 */
return 12;
case 4513: /* HTML_LinkAtPosition_t_32 */
return 24;
case 3402: /* SteamUGCRequestUGCDetailsResult_t_9784 */
return 9768;
case 3403: /* CreateItemResult_t_24 */
return 16;
case 1221: /* SteamNetConnectionStatusChangedCallback_t_712 */
return 704;
case 3405: /* ItemInstalled_t_16 */
return 12;
case 3406: /* DownloadItemResult_t_24 */
return 16;
case 209: /* GSReputation_t_40 */
return 32;
case 1106: /* LeaderboardScoreUploaded_t_32 */
return 28;
case 4515: /* HTML_JSConfirm_t_16 */
return 12;
case 3412: /* AddUGCDependencyResult_t_24 */
return 20;
case 3413: /* RemoveUGCDependencyResult_t_24 */
return 20;
case 3414: /* AddAppDependencyResult_t_24 */
return 16;
case 1111: /* LeaderboardUGCSet_t_16 */
return 12;
case 1112: /* PS3TrophiesInstalled_t_24 */
return 20;
case 3417: /* DeleteItemResult_t_16 */
return 12;
case 5211: /* RequestPlayersForGameProgressCallback_t_16 */
return 12;
case 5212: /* RequestPlayersForGameResultCallback_t_64 */
return 56;
case 5213: /* RequestPlayersForGameFinalResultCallback_t_24 */
return 20;
case 5214: /* SubmitPlayerResultResultCallback_t_24 */
return 20;
case 5215: /* EndGameResultCallback_t_16 */
return 12;
case 4704: /* SteamInventoryStartPurchaseResult_t_24 */
return 20;
case 4517: /* HTML_ComboNeedsPaint_t_24 */
return 20;
case 1308: /* RemoteStorageDownloadUGCResult_t_40 */
return 32;
case 4516: /* HTML_FileOpenDialog_t_24 */
return 20;
case 1023: /* FileDetailsResult_t_40 */
return 36;
#endif

View file

@ -395,10 +395,22 @@ case 1023:
break;
#endif
#ifdef __x86_64__
case 4513:
case 513:
switch(callback_len){
default:
case 32: cb_HTML_LinkAtPosition_t_32(lin_callback, callback); break;
case 16: cb_LobbyCreated_t_16(lin_callback, callback); break;
}
break;
case 4524:
switch(callback_len){
default:
case 16: cb_HTML_ShowToolTip_t_16(lin_callback, callback); break;
}
break;
case 3415:
switch(callback_len){
default:
case 24: cb_RemoveAppDependencyResult_t_24(lin_callback, callback); break;
}
break;
case 4514:
@ -407,22 +419,130 @@ case 4514:
case 16: cb_HTML_JSAlert_t_16(lin_callback, callback); break;
}
break;
case 4515:
case 3416:
switch(callback_len){
default:
case 16: cb_HTML_JSConfirm_t_16(lin_callback, callback); break;
case 152: cb_GetAppDependenciesResult_t_152(lin_callback, callback); break;
}
break;
case 4516:
case 4502:
switch(callback_len){
default:
case 24: cb_HTML_FileOpenDialog_t_24(lin_callback, callback); break;
case 56: cb_HTML_NeedsPaint_t_56(lin_callback, callback); break;
}
break;
case 4517:
case 1303:
switch(callback_len){
default:
case 24: cb_HTML_ComboNeedsPaint_t_24(lin_callback, callback); break;
case 288: cb_RemoteStorageAppSyncProgress_t_288(lin_callback, callback); break;
}
break;
case 152:
switch(callback_len){
default:
case 24: cb_MicroTxnAuthorizationResponse_t_24(lin_callback, callback); break;
}
break;
case 4505:
switch(callback_len){
default:
case 48: cb_HTML_URLChanged_t_48(lin_callback, callback); break;
}
break;
case 4506:
switch(callback_len){
default:
case 24: cb_HTML_FinishedRequest_t_24(lin_callback, callback); break;
}
break;
case 1307:
switch(callback_len){
default:
case 280: cb_RemoteStorageFileShareResult_t_280(lin_callback, callback); break;
case 16: cb_RemoteStorageFileShareResult_t_16(lin_callback, callback); break;
}
break;
case 4508:
switch(callback_len){
default:
case 16: cb_HTML_ChangedTitle_t_16(lin_callback, callback); break;
}
break;
case 1309:
switch(callback_len){
default:
case 24: cb_RemoteStoragePublishFileResult_t_24(lin_callback, callback); break;
case 16: cb_RemoteStoragePublishFileResult_t_16(lin_callback, callback); break;
}
break;
case 1310:
switch(callback_len){
default:
case 1744: cb_RemoteStorageGetPublishedFileDetailsResult_t_1744(lin_callback, callback); break;
}
break;
case 1311:
switch(callback_len){
default:
case 16: cb_RemoteStorageDeletePublishedFileResult_t_16(lin_callback, callback); break;
}
break;
case 1312:
switch(callback_len){
default:
case 416: cb_RemoteStorageEnumerateUserPublishedFilesResult_t_416(lin_callback, callback); break;
}
break;
case 1313:
switch(callback_len){
default:
case 16: cb_RemoteStorageSubscribePublishedFileResult_t_16(lin_callback, callback); break;
}
break;
case 1314:
switch(callback_len){
default:
case 616: cb_RemoteStorageEnumerateUserSubscribedFilesResult_t_616(lin_callback, callback); break;
}
break;
case 1315:
switch(callback_len){
default:
case 16: cb_RemoteStorageUnsubscribePublishedFileResult_t_16(lin_callback, callback); break;
}
break;
case 1316:
switch(callback_len){
default:
case 24: cb_RemoteStorageUpdatePublishedFileResult_t_24(lin_callback, callback); break;
case 16: cb_RemoteStorageUpdatePublishedFileResult_t_16(lin_callback, callback); break;
}
break;
case 1317:
switch(callback_len){
default:
case 296: cb_RemoteStorageDownloadUGCResult_t_296(lin_callback, callback); break;
}
break;
case 1318:
switch(callback_len){
default:
case 9760: cb_RemoteStorageGetPublishedFileDetailsResult_t_9760(lin_callback, callback); break;
case 9752: cb_RemoteStorageGetPublishedFileDetailsResult_t_9752(lin_callback, callback); break;
case 9496: cb_RemoteStorageGetPublishedFileDetailsResult_t_9496(lin_callback, callback); break;
}
break;
case 1319:
switch(callback_len){
default:
case 624: cb_RemoteStorageEnumerateWorkshopFilesResult_t_624(lin_callback, callback); break;
case 616: cb_RemoteStorageEnumerateWorkshopFilesResult_t_616(lin_callback, callback); break;
}
break;
case 1320:
switch(callback_len){
default:
case 32: cb_RemoteStorageGetPublishedItemVoteDetailsResult_t_32(lin_callback, callback); break;
}
break;
case 4521:
@ -438,40 +558,52 @@ case 4523:
case 16: cb_HTML_StatusText_t_16(lin_callback, callback); break;
}
break;
case 4524:
case 1324:
switch(callback_len){
default:
case 16: cb_HTML_ShowToolTip_t_16(lin_callback, callback); break;
case 16: cb_RemoteStorageUpdateUserPublishedItemVoteResult_t_16(lin_callback, callback); break;
}
break;
case 4525:
case 1325:
switch(callback_len){
default:
case 16: cb_HTML_UpdateToolTip_t_16(lin_callback, callback); break;
case 24: cb_RemoteStorageUserVoteDetails_t_24(lin_callback, callback); break;
}
break;
case 4502:
case 1326:
switch(callback_len){
default:
case 56: cb_HTML_NeedsPaint_t_56(lin_callback, callback); break;
case 416: cb_RemoteStorageEnumerateUserSharedWorkshopFilesResult_t_416(lin_callback, callback); break;
}
break;
case 4503:
case 1327:
switch(callback_len){
default:
case 40: cb_HTML_StartRequest_t_40(lin_callback, callback); break;
case 24: cb_RemoteStorageSetUserPublishedFileActionResult_t_24(lin_callback, callback); break;
}
break;
case 4505:
case 1330:
switch(callback_len){
default:
case 48: cb_HTML_URLChanged_t_48(lin_callback, callback); break;
case 24: cb_RemoteStoragePublishedFileUpdated_t_24(lin_callback, callback); break;
}
break;
case 4506:
case 5301:
switch(callback_len){
default:
case 24: cb_HTML_FinishedRequest_t_24(lin_callback, callback); break;
case 280: cb_JoinPartyCallback_t_280(lin_callback, callback); break;
}
break;
case 5302:
switch(callback_len){
default:
case 16: cb_CreateBeaconCallback_t_16(lin_callback, callback); break;
}
break;
case 2103:
switch(callback_len){
default:
case 24: cb_HTTPRequestDataReceived_t_24(lin_callback, callback); break;
}
break;
case 4507:
@ -480,10 +612,181 @@ case 4507:
case 16: cb_HTML_OpenLinkInNewTab_t_16(lin_callback, callback); break;
}
break;
case 4508:
case 2101:
switch(callback_len){
default:
case 16: cb_HTML_ChangedTitle_t_16(lin_callback, callback); break;
case 32: cb_HTTPRequestCompleted_t_32(lin_callback, callback); break;
case 24: cb_HTTPRequestCompleted_t_24(lin_callback, callback); break;
}
break;
case 4525:
switch(callback_len){
default:
case 16: cb_HTML_UpdateToolTip_t_16(lin_callback, callback); break;
}
break;
case 4503:
switch(callback_len){
default:
case 40: cb_HTML_StartRequest_t_40(lin_callback, callback); break;
}
break;
case 2102:
switch(callback_len){
default:
case 16: cb_HTTPRequestHeadersReceived_t_16(lin_callback, callback); break;
}
break;
case 4513:
switch(callback_len){
default:
case 32: cb_HTML_LinkAtPosition_t_32(lin_callback, callback); break;
}
break;
case 3402:
switch(callback_len){
default:
case 9784: cb_SteamUGCRequestUGCDetailsResult_t_9784(lin_callback, callback); break;
case 9776: cb_SteamUGCRequestUGCDetailsResult_t_9776(lin_callback, callback); break;
case 9768: cb_SteamUGCRequestUGCDetailsResult_t_9768(lin_callback, callback); break;
}
break;
case 3403:
switch(callback_len){
default:
case 24: cb_CreateItemResult_t_24(lin_callback, callback); break;
}
break;
case 1221:
switch(callback_len){
default:
case 712: cb_SteamNetConnectionStatusChangedCallback_t_712(lin_callback, callback); break;
}
break;
case 3405:
switch(callback_len){
default:
case 16: cb_ItemInstalled_t_16(lin_callback, callback); break;
}
break;
case 3406:
switch(callback_len){
default:
case 24: cb_DownloadItemResult_t_24(lin_callback, callback); break;
}
break;
case 209:
switch(callback_len){
default:
case 40: cb_GSReputation_t_40(lin_callback, callback); break;
}
break;
case 1106:
switch(callback_len){
default:
case 32: cb_LeaderboardScoreUploaded_t_32(lin_callback, callback); break;
}
break;
case 4515:
switch(callback_len){
default:
case 16: cb_HTML_JSConfirm_t_16(lin_callback, callback); break;
}
break;
case 3412:
switch(callback_len){
default:
case 24: cb_AddUGCDependencyResult_t_24(lin_callback, callback); break;
}
break;
case 3413:
switch(callback_len){
default:
case 24: cb_RemoveUGCDependencyResult_t_24(lin_callback, callback); break;
}
break;
case 3414:
switch(callback_len){
default:
case 24: cb_AddAppDependencyResult_t_24(lin_callback, callback); break;
}
break;
case 1111:
switch(callback_len){
default:
case 16: cb_LeaderboardUGCSet_t_16(lin_callback, callback); break;
}
break;
case 1112:
switch(callback_len){
default:
case 24: cb_PS3TrophiesInstalled_t_24(lin_callback, callback); break;
}
break;
case 3417:
switch(callback_len){
default:
case 16: cb_DeleteItemResult_t_16(lin_callback, callback); break;
}
break;
case 5211:
switch(callback_len){
default:
case 16: cb_RequestPlayersForGameProgressCallback_t_16(lin_callback, callback); break;
}
break;
case 5212:
switch(callback_len){
default:
case 64: cb_RequestPlayersForGameResultCallback_t_64(lin_callback, callback); break;
}
break;
case 5213:
switch(callback_len){
default:
case 24: cb_RequestPlayersForGameFinalResultCallback_t_24(lin_callback, callback); break;
}
break;
case 5214:
switch(callback_len){
default:
case 24: cb_SubmitPlayerResultResultCallback_t_24(lin_callback, callback); break;
}
break;
case 5215:
switch(callback_len){
default:
case 16: cb_EndGameResultCallback_t_16(lin_callback, callback); break;
}
break;
case 4704:
switch(callback_len){
default:
case 24: cb_SteamInventoryStartPurchaseResult_t_24(lin_callback, callback); break;
}
break;
case 4517:
switch(callback_len){
default:
case 24: cb_HTML_ComboNeedsPaint_t_24(lin_callback, callback); break;
}
break;
case 1308:
switch(callback_len){
default:
case 40: cb_RemoteStorageDownloadUGCResult_t_40(lin_callback, callback); break;
}
break;
case 4516:
switch(callback_len){
default:
case 24: cb_HTML_FileOpenDialog_t_24(lin_callback, callback); break;
}
break;
case 1023:
switch(callback_len){
default:
case 40: cb_FileDetailsResult_t_40(lin_callback, callback); break;
}
break;
#endif

View file

@ -1056,12 +1056,17 @@ def handle_struct(sdkver, struct):
cb_table[cb_num] = (struct.type.get_size(), [])
if l2w_handler_name64:
cb_table64[cb_num] = (struct64.get_size(), [])
else:
cb_table64[cb_num] = (struct.type.get_size(), [])
cb_table[cb_num][1].append((windows_struct.get_size(), struct_name))
if l2w_handler_name64:
cb_table64[cb_num][1].append((windows_struct64.get_size(), struct_name64))
else:
cb_table64[cb_num][1].append((windows_struct.get_size(), struct_name))
hfile = open("cb_converters.h", "a")
hfile.write("struct %s;\n" % struct.displayname)
if l2w_handler_name64:
cb_table64[cb_num][1].append((windows_struct64.get_size(), struct_name64))
hfile.write("#ifdef __i386__\n")
hfile.write("struct win%s;\n" % struct_name)
hfile.write("extern void %s(const struct %s *l, struct win%s *w);\n" % (l2w_handler_name, struct.displayname, struct_name))