mirror of
https://github.com/red-prig/fpPS4.git
synced 2024-11-27 16:40:43 +00:00
209 lines
5.4 KiB
ObjectPascal
209 lines
5.4 KiB
ObjectPascal
unit ps4_libSceNpScore;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
ps4_program,
|
|
Classes,
|
|
SysUtils,
|
|
ps4_libSceNpManager;
|
|
|
|
implementation
|
|
|
|
function ps4_sceNpScoreCreateNpTitleCtx(npServiceLabel:Integer;selfNpId:PSceNpId):Integer; SysV_ABI_CDecl;
|
|
begin
|
|
Result:=0;
|
|
end;
|
|
|
|
function ps4_sceNpScoreCreateNpTitleCtxA(npServiceLabel:Integer;selfId:Integer):Integer; SysV_ABI_CDecl;
|
|
begin
|
|
Result:=0;
|
|
end;
|
|
|
|
function ps4_sceNpScoreCreateRequest(titleCtxId:Integer):Integer; SysV_ABI_CDecl;
|
|
begin
|
|
writeln('ScoreCreateRequest:',titleCtxId);
|
|
Result:=894;
|
|
end;
|
|
|
|
function ps4_sceNpScoreDeleteRequest(reqId:Integer):Integer; SysV_ABI_CDecl;
|
|
begin
|
|
writeln('sceNpScoreDeleteRequest:',reqId);
|
|
Result:=0;
|
|
end;
|
|
|
|
type
|
|
pSceNpScoreRankData=^SceNpScoreRankData;
|
|
SceNpScoreRankData=packed record
|
|
npId:SceNpId;
|
|
reserved:array[0..48] of Byte;
|
|
pad0:array[0..2] of Byte;
|
|
pcId:Integer;
|
|
serialRank:DWORD;
|
|
rank:DWORD;
|
|
highestRank:DWORD;
|
|
scoreValue:Int64;
|
|
hasGameData:Integer;
|
|
pad1:array[0..3] of Byte;
|
|
recordDate:QWORD;
|
|
end;
|
|
|
|
PSceNpScoreRankDataA=^SceNpScoreRankDataA;
|
|
SceNpScoreRankDataA=packed record
|
|
onlineId:SceNpOnlineId;
|
|
reserved0:array[0..15] of Byte;
|
|
reserved:array[0..48] of Byte;
|
|
pad0:array[0..2] of Byte;
|
|
pcId:Integer;
|
|
serialRank:DWORD;
|
|
rank:DWORD;
|
|
highestRank:DWORD;
|
|
hasGameData:Integer;
|
|
pad1:array[0..3] of Byte;
|
|
scoreValue:Int64;
|
|
recordDate:QWORD;
|
|
accountId:QWORD;
|
|
pad2:array[0..7] of Byte;
|
|
end;
|
|
|
|
const
|
|
SCE_NP_SCORE_COMMENT_MAXLEN=63;
|
|
|
|
type
|
|
PSceNpScoreComment=^SceNpScoreComment;
|
|
SceNpScoreComment=packed record
|
|
utf8Comment:array[0..SCE_NP_SCORE_COMMENT_MAXLEN] of Char;
|
|
end;
|
|
|
|
const
|
|
SCE_NP_SCORE_GAMEINFO_MAXSIZE=189;
|
|
|
|
type
|
|
PSceNpScoreGameInfo=^SceNpScoreGameInfo;
|
|
SceNpScoreGameInfo=packed record
|
|
infoSize:size_t;
|
|
data:array[0..SCE_NP_SCORE_GAMEINFO_MAXSIZE-1] of Byte;
|
|
pad2:array[0..2] of Byte;
|
|
end;
|
|
|
|
PSceNpScoreGetFriendRankingOptParam=^SceNpScoreGetFriendRankingOptParam;
|
|
SceNpScoreGetFriendRankingOptParam=packed record
|
|
size:size_t;
|
|
startSerialRank:PInteger;
|
|
hits:PInteger;
|
|
end;
|
|
|
|
function ps4_sceNpScoreGetFriendsRanking(
|
|
reqId:Integer;
|
|
boardId:DWORD;
|
|
includeSelf:Integer;
|
|
rankArray:PSceNpScoreRankData;
|
|
rankArraySize:size_t;
|
|
commentArray:PSceNpScoreComment;
|
|
commentArraySize:size_t;
|
|
infoArray:PSceNpScoreGameInfo;
|
|
infoArraySize:size_t;
|
|
arrayNum:size_t;
|
|
lastSortDate:PQWORD;
|
|
totalRecord:PDWORD;
|
|
option:PSceNpScoreGetFriendRankingOptParam):Integer; SysV_ABI_CDecl;
|
|
begin
|
|
//lastSortDate^:=0;
|
|
//totalRecord^:=0;
|
|
Result:=0;
|
|
end;
|
|
|
|
function ps4_sceNpScoreGetFriendsRankingA(
|
|
reqId:Integer;
|
|
boardId:DWORD;
|
|
includeSelf:Integer;
|
|
rankArray:PSceNpScoreRankDataA;
|
|
rankArraySize:size_t;
|
|
commentArray:PSceNpScoreComment;
|
|
commentArraySize:size_t;
|
|
infoArray:PSceNpScoreGameInfo;
|
|
infoArraySize:size_t;
|
|
arrayNum:size_t;
|
|
lastSortDate:PQWORD;
|
|
totalRecord:PDWORD;
|
|
option:PSceNpScoreGetFriendRankingOptParam):Integer; SysV_ABI_CDecl;
|
|
begin
|
|
//lastSortDate^:=0;
|
|
//totalRecord^:=0;
|
|
Result:=0;
|
|
end;
|
|
|
|
type
|
|
PSceNpScoreAccountIdPcId=^SceNpScoreAccountIdPcId;
|
|
SceNpScoreAccountIdPcId=packed record
|
|
accountId:QWORD;
|
|
pcId:Integer;
|
|
pad:array[0..3] of Byte;
|
|
end;
|
|
|
|
function ps4_sceNpScoreGetRankingByAccountIdPcId(
|
|
reqId:Integer;
|
|
boardId:DWORD;
|
|
idArray:PSceNpScoreAccountIdPcId;
|
|
idArraySize:size_t;
|
|
rankArray:PSceNpScoreRankDataA;
|
|
rankArraySize:size_t;
|
|
commentArray:PSceNpScoreComment;
|
|
commentArraySize:size_t;
|
|
infoArray:PSceNpScoreGameInfo;
|
|
infoArraySize:size_t;
|
|
arrayNum:size_t;
|
|
lastSortDate:PQWORD;
|
|
totalRecord:PDWORD;
|
|
option:Pointer):Integer; SysV_ABI_CDecl;
|
|
begin
|
|
//lastSortDate^:=0;
|
|
//totalRecord^:=0;
|
|
Result:=0;
|
|
end;
|
|
|
|
function ps4_sceNpScoreGetRankingByRange(
|
|
reqId:Integer;
|
|
boardId:DWORD;
|
|
startSerialRank:DWORD;
|
|
rankArray:pSceNpScoreRankData;
|
|
rankArraySize:QWORD;
|
|
commentArray:pSceNpScoreComment;
|
|
commentArraySize:QWORD;
|
|
infoArray:pSceNpScoreGameInfo;
|
|
infoArraySize:QWORD;
|
|
arrayNum:QWORD;
|
|
lastSortDate:PQWORD;
|
|
totalRecord:PDWORD;
|
|
option:Pointer):Integer; SysV_ABI_CDecl;
|
|
begin
|
|
//lastSortDate^:=0;
|
|
//totalRecord^:=0;
|
|
Result:=0;
|
|
end;
|
|
|
|
function Load_libSceNpScoreRanking(Const name:RawByteString):TElf_node;
|
|
var
|
|
lib:PLIBRARY;
|
|
begin
|
|
Result:=TElf_node.Create;
|
|
Result.pFileName:=name;
|
|
lib:=Result._add_lib('libSceNpScore');
|
|
lib^.set_proc($2A7340D53120B412,@ps4_sceNpScoreCreateNpTitleCtx);
|
|
lib^.set_proc($1969D640D5D91F93,@ps4_sceNpScoreCreateNpTitleCtxA);
|
|
lib^.set_proc($816F2ACA362B51B9,@ps4_sceNpScoreCreateRequest);
|
|
lib^.set_proc($74AF3F4A061FEABE,@ps4_sceNpScoreDeleteRequest);
|
|
lib^.set_proc($F24B88CD4C3ABAD4,@ps4_sceNpScoreGetFriendsRanking);
|
|
lib^.set_proc($80C6CE9FEFFA7970,@ps4_sceNpScoreGetFriendsRankingA);
|
|
lib^.set_proc($F66644828884ABA6,@ps4_sceNpScoreGetRankingByAccountIdPcId);
|
|
lib^.set_proc($2811F10E3CA4FE30,@ps4_sceNpScoreGetRankingByRange);
|
|
end;
|
|
|
|
initialization
|
|
ps4_app.RegistredPreLoad('libSceNpScoreRanking.prx',@Load_libSceNpScoreRanking);
|
|
|
|
end.
|
|
|