//Invoked on Castles when a guild is broken. [Skotlex] int castle_guild_broken_sub(DBKey key,void *data,va_list ap) { struct guild_castle *gc=(struct guild_castle *)data; int guild_id=va_arg(ap,int); nullpo_ret(gc); if (gc->guild_id == guild_id) { //Save the new 'owner', this should invoke guardian clean up and other such things. gc->guild_id = 0; guild_castledatasave(gc->castle_id, 1, 0); } return 0; }
int guild_save_sub(int tid, unsigned int tick, int id, intptr data) { static int Gid[MAX_GUILDCASTLE]; // previous owning guild struct guild_castle *gc; int i; for(i = 0; i < MAX_GUILDCASTLE; i++) { // [Yor] gc = guild_castle_search(i); if (!gc) continue; if (gc->guild_id != Gid[i]) { // Re-save guild id if its owner guild has changed guild_castledatasave(gc->castle_id, 1, gc->guild_id); Gid[i] = gc->guild_id; } } return 0; }