Added initialization checks in SceNpClans module

This commit is contained in:
Survanium90 2014-10-03 17:39:34 +04:00
parent e4eecd247c
commit 5b467ff82a

View file

@ -8,243 +8,446 @@
Module *sceNpClans = nullptr; Module *sceNpClans = nullptr;
int sceNpClansInit() struct sceNpClansInternal
{ {
UNIMPLEMENTED_FUNC(sceNpClans); bool m_bSceNpClansInitialized;
sceNpClansInternal()
: m_bSceNpClansInitialized(false)
{
}
};
sceNpClansInternal sceNpClansInstance;
int sceNpClansInit(vm::ptr<u32> commId, vm::ptr<u32> passphrase, vm::ptr<void> pool, vm::ptr<size_t> 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; return CELL_OK;
} }
int sceNpClansTerm() int sceNpClansTerm()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); sceNpClans->Warning("sceNpClansTerm()");
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
sceNpClansInstance.m_bSceNpClansInitialized = false;
return CELL_OK; return CELL_OK;
} }
int sceNpClansCreateRequest() int sceNpClansCreateRequest(vm::ptr<SceNpClansRequestHandle> handle,u64 flags)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); sceNpClans->Todo("sceNpClansInit(handle_addr=0x%x, flags=%d)", 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; return CELL_OK;
} }
int sceNpClansDestroyRequest() int sceNpClansDestroyRequest(vm::ptr<SceNpClansRequestHandle> handle)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansAbortRequest() int sceNpClansAbortRequest(vm::ptr<SceNpClansRequestHandle> handle)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansCreateClan() int sceNpClansCreateClan(vm::ptr<SceNpClansRequestHandle> handle, vm::ptr<const char> name, vm::ptr<const char> tag, vm::ptr<u32> clanId)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
if ((*name > SCE_NP_CLANS_CLAN_NAME_MAX_LENGTH) || (*tag > SCE_NP_CLANS_CLAN_TAG_MAX_LENGTH))
return SCE_NP_CLANS_ERROR_EXCEEDS_MAX;
return CELL_OK; return CELL_OK;
} }
int sceNpClansDisbandClan() int sceNpClansDisbandClan(vm::ptr<SceNpClansRequestHandle> handle, u32 clanId)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansGetClanList() int sceNpClansGetClanList(vm::ptr<SceNpClansRequestHandle> handle, vm::ptr<const SceNpClansPagingRequest> paging, vm::ptr<SceNpClansEntry> clanList, vm::ptr<SceNpClansPagingResult> pageResult)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansGetClanListByNpId() int sceNpClansGetClanListByNpId()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansSearchByProfile() int sceNpClansSearchByProfile()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansSearchByName() int sceNpClansSearchByName()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansGetClanInfo() int sceNpClansGetClanInfo()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansUpdateClanInfo() int sceNpClansUpdateClanInfo()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansGetMemberList() int sceNpClansGetMemberList()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansGetMemberInfo() int sceNpClansGetMemberInfo()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansUpdateMemberInfo() int sceNpClansUpdateMemberInfo()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansChangeMemberRole() int sceNpClansChangeMemberRole()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansGetAutoAcceptStatus() int sceNpClansGetAutoAcceptStatus()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansUpdateAutoAcceptStatus() int sceNpClansUpdateAutoAcceptStatus()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansJoinClan() int sceNpClansJoinClan()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansLeaveClan() int sceNpClansLeaveClan()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansKickMember() int sceNpClansKickMember(vm::ptr<SceNpClansRequestHandle> handle, u32 clanId,vm::ptr<u32> npid, vm::ptr<SceNpClansMessage> message)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
if (message > SCE_NP_CLANS_MESSAGE_BODY_MAX_LENGTH)
return SCE_NP_CLANS_ERROR_EXCEEDS_MAX;
return CELL_OK; return CELL_OK;
} }
int sceNpClansSendInvitation() int sceNpClansSendInvitation(vm::ptr<SceNpClansRequestHandle> handle, u32 clanId, vm::ptr<u32> npid, vm::ptr<SceNpClansMessage> message)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
if (message > SCE_NP_CLANS_MESSAGE_BODY_MAX_LENGTH)
return SCE_NP_CLANS_ERROR_EXCEEDS_MAX;
return CELL_OK; return CELL_OK;
} }
int sceNpClansCancelInvitation() int sceNpClansCancelInvitation()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansSendInvitationResponse() int sceNpClansSendInvitationResponse(vm::ptr<SceNpClansRequestHandle> handle, u32 clanId, vm::ptr<SceNpClansMessage> message, bool accept)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
if (message > SCE_NP_CLANS_MESSAGE_BODY_MAX_LENGTH)
return SCE_NP_CLANS_ERROR_EXCEEDS_MAX;
return CELL_OK; return CELL_OK;
} }
int sceNpClansSendMembershipRequest() int sceNpClansSendMembershipRequest(vm::ptr<SceNpClansRequestHandle> handle, u32 clanId, vm::ptr<SceNpClansMessage> message)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
if (message > SCE_NP_CLANS_MESSAGE_BODY_MAX_LENGTH)
return SCE_NP_CLANS_ERROR_EXCEEDS_MAX;
return CELL_OK; return CELL_OK;
} }
int sceNpClansCancelMembershipRequest() int sceNpClansCancelMembershipRequest()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansSendMembershipResponse() int sceNpClansSendMembershipResponse()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansGetBlacklist() int sceNpClansGetBlacklist()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansAddBlacklistEntry() int sceNpClansAddBlacklistEntry()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansRemoveBlacklistEntry() int sceNpClansRemoveBlacklistEntry()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansRetrieveAnnouncements() int sceNpClansRetrieveAnnouncements()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansPostAnnouncement() int sceNpClansPostAnnouncement()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansRemoveAnnouncement() int sceNpClansRemoveAnnouncement()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansPostChallenge() int sceNpClansPostChallenge(vm::ptr<SceNpClansRequestHandle> handle, u32 clanId, u32 targetClan, vm::ptr<SceNpClansMessage> message, vm::ptr<SceNpClansMessageData> data, u32 duration, vm::ptr<u32> mId)
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
if (data != 0)
return SCE_NP_CLANS_ERROR_NOT_SUPPORTED;
if (message > SCE_NP_CLANS_MESSAGE_BODY_MAX_LENGTH)
return SCE_NP_CLANS_ERROR_EXCEEDS_MAX;
//todo
return CELL_OK; return CELL_OK;
} }
int sceNpClansRetrievePostedChallenges() int sceNpClansRetrievePostedChallenges()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
//todo
return CELL_OK; return CELL_OK;
} }
int sceNpClansRemovePostedChallenge() int sceNpClansRemovePostedChallenge()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansRetrieveChallenges() int sceNpClansRetrieveChallenges()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
int sceNpClansRemoveChallenge() int sceNpClansRemoveChallenge()
{ {
UNIMPLEMENTED_FUNC(sceNpClans); UNIMPLEMENTED_FUNC(sceNpClans);
if (!sceNpClansInstance.m_bSceNpClansInitialized)
return SCE_NP_CLANS_ERROR_NOT_INITIALIZED;
return CELL_OK; return CELL_OK;
} }
void sceNpClans_unload() void sceNpClans_unload()
{ {
// TODO: Unload Clans module sceNpClansInstance.m_bSceNpClansInitialized = false;
} }
void sceNpClans_init(Module *pxThis) void sceNpClans_init(Module *pxThis)