Go to the documentation of this file.
16 #include <QStringList>
17 #include <QMessageBox>
54 QMessageBox::critical(
nullptr,
"Fatal error",
"Error while initializing Crossfire data, make sure you have maps and archetypes correctly installed.");
59 setlocale(LC_NUMERIC,
"C");
70 bool hasWarningOrError =
false;
80 hasWarningOrError =
true;
92 if (hasWarningOrError) {
93 QString
msg(tr(
"The following errors occurred during asset collection:\n") +
log.join(
""));
94 QMessageBox::warning(
nullptr, tr(
"Errors during asset collection!"),
msg);
99 for (
int ing = 1; ; ing++)
105 QHash<QString, recipe*>
recipes;
106 for (
recipe* rec =
list->items; rec; rec = rec->next)
108 key = QString(
"%1_%2").arg(rec->arch_name[0], rec->title);
122 if (count < 1 || count >
myRecipes.size())
123 return QStringList();
132 if (ingredients < 1 || ingredients >
myRecipes.size())
147 goOn = callback(OTHER_ARCH, arch, nullptr, nullptr, nullptr);
153 goOn = callback(DEATH_ANIM, arch, nullptr, nullptr, nullptr);
160 for (
auto t =
list->items;
t;
t =
t->next)
164 goOn = callback(TREASURE_USE, nullptr, list, nullptr, nullptr);
169 QList<CREMapInformation*> mapuse = store->getArchetypeUse(
item);
174 goOn = callback(
MAP_USE,
nullptr,
nullptr, information,
nullptr);
176 auto allMaps =
store->allMaps();
201 for (
size_t ing = 0; ing < rec->
arch_names; ing++)
236 while (!no.empty()) {
237 auto list = no.back();
241 origins, std::vector<std::string>());
242 if (dlg.exec() == QDialog::Accepted) {
246 if (QMessageBox::question(
nullptr, tr(
"Lose changes to treasure list %1?").arg(
list->name),
247 tr(
"Really discard changes to treasure list %1?").arg(
list->name)) == QMessageBox::Yes) {
static void archetypeUse(const archetype *item, CREMapInformationManager *store, AssetUseCallback callback)
LicenseManager myLicenseManager
const RMParms * parameters() const
recipelist * get_formulalist(int i)
const recipe * getRecipe(int ingredients, const QString &name) const
arch
DIALOGCHECK MINARGS 1 MAXARGS 1
static void onFatalInit(enum fatal_error)
void generalMessageModified(GeneralMessage *message)
const char * object_get_value(const object *op, const char *const key)
const std::map< std::string, std::set< const archetype * > > & origins() const
void add_server_collect_hooks()
AssetsManager * getManager()
Plugin animator file specs[Config] name
Install Bug reporting Credits so make sure you have version or later There are files involved in the automatic convert convertall and filelist py GuildList has the list of guilds for the server GuildLocations is what is used by the install script for setting up the maps It has columns in the first is the name of the no spaces The second is the region of the the third is the destination folder for the the fourth is the exit the fifth and sixth are the x and y coords within the exit the seventh eighth and ninth are the exit location for the storage hall If field seven is then it uses the same exit map as for the guild hall itself filelist py has a list of which files to process for each guild hall convert py takes all the files in filelist py and customises them to the specific guild then outputs them into a new(or overwrites an existing) folder in the current working directory. The output folder is the name of the guildhall. It also writes them into the destination dir. It takes the arguments from argv
ModifiedAssetsManager< artifact > myArtifacts
void questModified(quest_definition *quest)
QStringList recipes(int count) const
void assetDefined(const T *asset, const std::string &filename)
int recipeMaxIngredients() const
void add_hook(const char *name, collectorHook hook)
@ store
store tags as binary type
ModifiedAssetsManager< archetype > myArchetypes
Archetypes * archetypes()
void saveGeneralMessages()
class AssetsTracker * assets_tracker
ModifiedAssetsManager< quest_definition > myQuests
std::vector< T * > dirtyAssetsWithNoOrigin() const
std::vector< std::string > files() const
virtual ~ResourcesManager()
void readLicense(BufferReader *reader, const char *filename)
std::function< bool(ArchetypeUse use, const archetype *, const treasurelist *, const CREMapInformation *, recipe *)> AssetUseCallback
void each(std::function< void(T *)> op)
const char *const loglevel_names[]
const typedef char * sstring
void assetModified(T *asset)
ModifiedAssetsManager< GeneralMessage > myGeneralMessages
Python Guilds Quick outline Add a guild(mapmakers) this is still a problem *after dropping the token to gain access to the stove a woodfloor now appears which is Toolshed Token(found in Guild_HQ) *Note also have multiple gates in place to protect players and items from the mana explosion drop x for Jewelers room *Jewelers room works just need to determine what x is drop x for Thaumaturgy room *Thaumaturgy room works just need to determine what x is drop gold dropping the Firestar named fearless allows access to but I suspect that the drop location of the chest is not as intended because the player is in the way once you enter the chest the exit back to the basement is things such as the message et al reside on teleporters which then transport items to the map as they are when the map is already purchased items reappear in that area From my this does not cause any problems at the moment But this should be corrected fixed Major it s now possible to buy guilds Ryo Update Uploaded guild package to CVS Changes the cauldrons and the charging room I spent a while agonizing over They were natural guild enhancements but much too much value for any reasonable expense to buy them Then I thought that they should be pay access but at a greatly reduced rate SO when you buy a forge or whatever for your guild it is available on a perplayer daily rate but it will be accessable for testing and to DMs to play with Like I said lots still to do with the especially comingt up with quest items for buying things like the new workshops and stuff One of the things I would like some input on would be proposals for additional fields for either the guildhouses or guild datafiles to play with Currently the Guildhouse but there is no reason we can t have more than one measure of a guild perhaps have dues relate to Dues and use points for some other suspended or inactive or when a guild is founded inactive active Guilds have the format
void treasureModified(treasurelist *treasure)
QList< QHash< QString, recipe * > > myRecipes
char final_exit_archetype[RM_SIZE]
ModifiedAssetsManager< treasurelist > myTreasures
void archetypeModified(archetype *arch)
void saveModifiedAssets()