#include "stdafx.h" #include "Emu/Memory/Memory.h" #include "Emu/System.h" #include "Emu/SysCalls/Modules.h" #include "sceNp.h" #include "sceNpClans.h" Module *sceNpClans = nullptr; struct sceNpClansInternal { bool m_bSceNpClansInitialized; sceNpClansInternal() : m_bSceNpClansInitialized(false) { } }; sceNpClansInternal sceNpClansInstance; int sceNpClansInit(vm::ptr commId, vm::ptr passphrase, vm::ptr pool, vm::ptr poolSize, u32 flags) { sceNpClans->Warning("sceNpClansInit(commId_addr=0x%x, passphrase_addr=0x%x, pool_addr=0x%x,poolSize_addr=0x%x, flags=%d)", commId.addr(), passphrase.addr(), pool.addr(), poolSize.addr(), flags); if (sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_ALREADY_INITIALIZED; if (flags != 0) return SCE_NP_CLANS_ERROR_NOT_SUPPORTED; sceNpClansInstance.m_bSceNpClansInitialized = true; return CELL_OK; } int sceNpClansTerm() { sceNpClans->Warning("sceNpClansTerm()"); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; sceNpClansInstance.m_bSceNpClansInitialized = false; return CELL_OK; } int sceNpClansCreateRequest(vm::ptr handle,u64 flags) { sceNpClans->Todo("sceNpClansCreateRequest(handle_addr=0x%x, flags=0x%llx)", handle.addr(), flags); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; if (flags != 0) return SCE_NP_CLANS_ERROR_NOT_SUPPORTED; return CELL_OK; } int sceNpClansDestroyRequest(vm::ptr handle) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansAbortRequest(vm::ptr handle) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansCreateClan(vm::ptr handle, vm::ptr name, vm::ptr tag, vm::ptr clanId) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansDisbandClan(vm::ptr handle, u32 clanId) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansGetClanList(vm::ptr handle, vm::ptr paging, vm::ptr clanList, vm::ptr pageResult) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansGetClanListByNpId() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansSearchByProfile() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansSearchByName() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansGetClanInfo() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansUpdateClanInfo() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansGetMemberList() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansGetMemberInfo() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansUpdateMemberInfo() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansChangeMemberRole() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansGetAutoAcceptStatus() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansUpdateAutoAcceptStatus() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansJoinClan() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansLeaveClan() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansKickMember(vm::ptr handle, u32 clanId, vm::ptr npid, vm::ptr message) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansSendInvitation(vm::ptr handle, u32 clanId, vm::ptr npid, vm::ptr message) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansCancelInvitation() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansSendInvitationResponse(vm::ptr handle, u32 clanId, vm::ptr message, bool accept) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansSendMembershipRequest(vm::ptr handle, u32 clanId, vm::ptr message) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansCancelMembershipRequest() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansSendMembershipResponse() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansGetBlacklist() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansAddBlacklistEntry() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansRemoveBlacklistEntry() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansRetrieveAnnouncements() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansPostAnnouncement() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansRemoveAnnouncement() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansPostChallenge(vm::ptr handle, u32 clanId, u32 targetClan, vm::ptr message, vm::ptr data, u32 duration, vm::ptr mId) { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; if (data != 0) return SCE_NP_CLANS_ERROR_NOT_SUPPORTED; //todo return CELL_OK; } int sceNpClansRetrievePostedChallenges() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; //todo return CELL_OK; } int sceNpClansRemovePostedChallenge() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansRetrieveChallenges() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } int sceNpClansRemoveChallenge() { UNIMPLEMENTED_FUNC(sceNpClans); if (!sceNpClansInstance.m_bSceNpClansInitialized) return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; return CELL_OK; } void sceNpClans_unload() { sceNpClansInstance.m_bSceNpClansInitialized = false; } void sceNpClans_init(Module *pxThis) { sceNpClans = pxThis; sceNpClans->AddFunc(0x9b820047, sceNpClansInit); sceNpClans->AddFunc(0x42332cb7, sceNpClansTerm); sceNpClans->AddFunc(0x9a72232d, sceNpClansCreateRequest); sceNpClans->AddFunc(0xd6551cd1, sceNpClansDestroyRequest); sceNpClans->AddFunc(0xe82969e2, sceNpClansAbortRequest); sceNpClans->AddFunc(0xa6a31a38, sceNpClansCreateClan); sceNpClans->AddFunc(0x4826f6d5, sceNpClansDisbandClan); sceNpClans->AddFunc(0xca4181b4, sceNpClansGetClanList); sceNpClans->AddFunc(0x672399a8, sceNpClansGetClanListByNpId); sceNpClans->AddFunc(0x1221a1bf, sceNpClansSearchByProfile); sceNpClans->AddFunc(0xace0cfba, sceNpClansSearchByName); sceNpClans->AddFunc(0x487de998, sceNpClansGetClanInfo); sceNpClans->AddFunc(0x09f9e1a9, sceNpClansUpdateClanInfo); sceNpClans->AddFunc(0x856ff5c0, sceNpClansGetMemberList); sceNpClans->AddFunc(0x20472da0, sceNpClansGetMemberInfo); sceNpClans->AddFunc(0xf4a2d52b, sceNpClansUpdateMemberInfo); sceNpClans->AddFunc(0x9cac2085, sceNpClansChangeMemberRole); sceNpClans->AddFunc(0x38dadf1f, sceNpClansGetAutoAcceptStatus); sceNpClans->AddFunc(0x5da94854, sceNpClansUpdateAutoAcceptStatus); sceNpClans->AddFunc(0xdbf300ca, sceNpClansJoinClan); sceNpClans->AddFunc(0x560f717b, sceNpClansLeaveClan); sceNpClans->AddFunc(0xaa7912b5, sceNpClansKickMember); sceNpClans->AddFunc(0xbc05ef31, sceNpClansSendInvitation); sceNpClans->AddFunc(0x726dffd5, sceNpClansCancelInvitation); sceNpClans->AddFunc(0x095e12c6, sceNpClansSendInvitationResponse); sceNpClans->AddFunc(0x59743b2b, sceNpClansSendMembershipRequest); sceNpClans->AddFunc(0x299ccc9b, sceNpClansCancelMembershipRequest); sceNpClans->AddFunc(0x942dbdc4, sceNpClansSendMembershipResponse); sceNpClans->AddFunc(0x56bc5a7c, sceNpClansGetBlacklist); sceNpClans->AddFunc(0x4d06aef7, sceNpClansAddBlacklistEntry); sceNpClans->AddFunc(0x5bff9da1, sceNpClansRemoveBlacklistEntry); sceNpClans->AddFunc(0x727aa7f8, sceNpClansRetrieveAnnouncements); sceNpClans->AddFunc(0xada45b84, sceNpClansPostAnnouncement); sceNpClans->AddFunc(0xe2590f60, sceNpClansRemoveAnnouncement); sceNpClans->AddFunc(0x83d65529, sceNpClansPostChallenge); sceNpClans->AddFunc(0x8e785b97, sceNpClansRetrievePostedChallenges); sceNpClans->AddFunc(0xd3346dc4, sceNpClansRemovePostedChallenge); sceNpClans->AddFunc(0x0df25834, sceNpClansRetrieveChallenges); sceNpClans->AddFunc(0xce6dc0f0, sceNpClansRemoveChallenge); }