polserver/pol-core/pol/guildscrobj.cpp
Kevin Eady 12d6186d10
Script option enhancements (#118)
* Fix SCRIPTOPT_CAN_ACCESS_OFFLINE_MOBILES

* Add SCRIPTOPT_SURVIVE_ATTACHED_DISCONNECT

* wip beginning work on templatization

* Use PolModule in pol-specific modules

* wip, creating PolModule with getXYZParam

* wip 1, moving getXYZ to UOExecutor

* compilable with PolObjectImp / PolApplicObj

* add type guard

* wip, change signatures

change signatures of script_method, script_method_id, and
custom_script_method

* compilable (windows)

* linux fixes

* namespace fixes

* remove uoexhelp

* formatting

* compilable

- move can_access_offline_mobiles back to uoexec
- add guildscrobj and partyscrobj sources
- move EGuildRefObjImp and EPartyRefObjImp
- wip, implement asUOExec
- formatting uoexec.cpp,.h

* finish uoexec() helper

* some cleanup
2020-02-08 09:21:35 +01:00

63 lines
1.3 KiB
C++

#include "guildscrobj.h"
#include "guilds.h"
#include <stddef.h>
#include <string>
#include "../clib/stlutil.h"
namespace Pol
{
namespace Module
{
using namespace Bscript;
BApplicObjType guild_type;
EGuildRefObjImp::EGuildRefObjImp( Core::GuildRef gref )
: PolApplicObj<Core::GuildRef>( &guild_type, gref ){};
const char* EGuildRefObjImp::typeOf() const
{
return "GuildRef";
}
u8 EGuildRefObjImp::typeOfInt() const
{
return OTGuildRef;
}
BObjectImp* EGuildRefObjImp::copy() const
{
return new EGuildRefObjImp( obj_ );
}
bool EGuildRefObjImp::isTrue() const
{
return ( !obj_->_disbanded );
}
bool EGuildRefObjImp::operator==( const BObjectImp& objimp ) const
{
if ( objimp.isa( BObjectImp::OTApplicObj ) )
{
const BApplicObjBase* aob =
Clib::explicit_cast<const BApplicObjBase*, const BObjectImp*>( &objimp );
if ( aob->object_type() == &guild_type )
{
const EGuildRefObjImp* guildref_imp =
Clib::explicit_cast<const EGuildRefObjImp*, const BApplicObjBase*>( aob );
return ( guildref_imp->obj_->_guildid == obj_->_guildid );
}
else
return false;
}
else if ( objimp.isa( BObjectImp::OTBoolean ) )
return isTrue() == static_cast<const BBoolean&>( objimp ).isTrue();
else
return false;
}
} // namespace Module
} // namespace Pol