mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-31 00:15:54 -04:00
142 lines
4.3 KiB
Plaintext
142 lines
4.3 KiB
Plaintext
// ======================================================================
|
|
//
|
|
// guild.script - guild terminal menu handling
|
|
//
|
|
// Copyright 2002 Sony Online Entertainment
|
|
//
|
|
// ======================================================================
|
|
|
|
include library.guild;
|
|
include library.player_structure;
|
|
include library.sui;
|
|
include library.utils;
|
|
|
|
//inherits terminal.base.base_terminal;
|
|
|
|
// ======================================================================
|
|
|
|
const string_id SID_GUILD_CREATE = new string_id ("guild", "menu_create");
|
|
|
|
const string STR_GUILD_CREATE_NAME_PROMPT = "@guild:create_name_prompt";
|
|
const string STR_GUILD_CREATE_NAME_TITLE = "@guild:create_name_title";
|
|
const string STR_GUILD_CREATE_ABBREV_PROMPT = "@guild:create_abbrev_prompt";
|
|
const string STR_GUILD_CREATE_ABBREV_TITLE = "@guild:create_abbrev_title";
|
|
const string_id STR_GUILD_OPEN_REGISTRY = new string_id("guild", "open_registry");
|
|
|
|
|
|
// ======================================================================
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
trigger OnObjectMenuRequest(obj_id player, menu_info mi)
|
|
{
|
|
int playerGuildId = getGuildId(player);
|
|
|
|
if (playerGuildId == 0 && utils.isNestedWithinAPlayer(self))
|
|
{
|
|
mi.addRootMenu(menu_info_types.SERVER_GUILD_CREATE, SID_GUILD_CREATE);
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
trigger OnObjectMenuSelect(obj_id player, int item)
|
|
{
|
|
sendDirtyObjectMenuNotification(self);
|
|
|
|
int playerGuildId = getGuildId(player);
|
|
|
|
if (playerGuildId == 0)
|
|
{
|
|
// The guild has not yet been initialized. The create menu should only be
|
|
// accessible to someone who is not in a guild.
|
|
sui.inputbox(self, player, STR_GUILD_CREATE_NAME_PROMPT, sui.OK_CANCEL, STR_GUILD_CREATE_NAME_TITLE, sui.INPUT_NORMAL, null, "onGuildCreateNameResponse");
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler onGuildCreateNameResponse()
|
|
{
|
|
obj_id player = params.getObjId("player");
|
|
|
|
if (sui.getIntButtonPressed(params) == sui.BP_OK)
|
|
{
|
|
string newGuildName = sui.getInputBoxText(params);
|
|
setMenuContextString(self, player, "guildCreateName", newGuildName);
|
|
sui.inputbox(
|
|
self,
|
|
player,
|
|
STR_GUILD_CREATE_ABBREV_PROMPT,
|
|
sui.OK_CANCEL,
|
|
STR_GUILD_CREATE_ABBREV_TITLE,
|
|
sui.INPUT_NORMAL,
|
|
null,
|
|
"onGuildCreateAbbrevResponse");
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler onGuildCreateAbbrevResponse()
|
|
{
|
|
obj_id player = params.getObjId("player");
|
|
string newGuildName = getMenuContextString(self, player, "guildCreateName");
|
|
removeMenuContextVar(self, player, "guildCreateName");
|
|
|
|
if (sui.getIntButtonPressed(params) == sui.BP_OK)
|
|
{
|
|
string newGuildAbbrev = sui.getInputBoxText(params);
|
|
int guildId = guild.create(player, newGuildName, newGuildAbbrev);
|
|
if(guildId != 0)
|
|
{
|
|
obj_id pInv = utils.getInventoryContainer(player);
|
|
obj_id guildScreen = createObjectOverloaded(guild.GUILD_SCREEN_TEMPLATE, pInv);
|
|
if(isIdValid(guildScreen))
|
|
{
|
|
obj_id guildLeaderPDA = guild.getGuildRemoteDevice(player);
|
|
setOwner(guildScreen, player);
|
|
if(isIdValid(guildLeaderPDA) && exists(guildLeaderPDA))
|
|
{
|
|
setObjVar(guildLeaderPDA, guild.GUILD_SCREEN_ID, guildScreen);
|
|
setObjVar(guildScreen, guild.GUILD_SCREEN_ID, guildLeaderPDA);
|
|
setObjVar(guildScreen, guild.REGISTERED_GUILD, guildId);
|
|
destroyObject(self);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
|
|
string getMenuContextString(obj_id self, obj_id player, string varName)
|
|
{
|
|
deltadictionary dd = self.getScriptVars();
|
|
return dd.getString("guildMenu." + player + "." + varName);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void setMenuContextString(obj_id self, obj_id player, string varName, string value)
|
|
{
|
|
deltadictionary dd = self.getScriptVars();
|
|
dd.put("guildMenu." + player + "." + varName, value);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void removeMenuContextVar(obj_id self, obj_id player, string varName)
|
|
{
|
|
deltadictionary dd = self.getScriptVars();
|
|
dd.remove("guildMenu." + player + "." + varName);
|
|
}
|
|
|
|
// ======================================================================
|