예제 #1
0
/* PnamesEntryPanel::loadEntry
 * Loads an entry into the PNAMES entry panel
 *******************************************************************/
bool PnamesEntryPanel::loadEntry(ArchiveEntry* entry) {
	// Do nothing if entry is already open
	if (this->entry == entry)
		return true;

	// Empty previous list
	names.clear();

	// Read PNAMES entry
	uint32_t n_pnames = 0;
	entry->seek(0, SEEK_SET);
	if (!entry->read(&n_pnames, 4)) {
		wxLogMessage("Error: PNAMES entry is corrupt");
		return false;
	}

	// Read pnames content
	for (uint32_t a = 0; a < n_pnames; a++) {
		char pname[9] = "";
		pname[8] = 0;

		// Try to read pname
		if (!entry->read(&pname, 8)) {
			wxLogMessage("Error: PNAMES entry is corrupt");
			return false;
		}

		// Add pname
		names.push_back(wxString(pname).Upper());
	}

	// Update variables
	this->entry = entry;
	setModified(false);

	// Refresh controls
	populateEntryList();
	Layout();

	return true;
}
예제 #2
0
/* SwitchesEntryPanel::loadEntry
 * Loads an entry into the SWITCHES entry panel
 *******************************************************************/
bool SwitchesEntryPanel::loadEntry(ArchiveEntry* entry)
{
	// Do nothing if entry is already open
	if (this->entry == entry && !isModified())
		return true;

	// Read SWITCHES entry into list
	switches.clear();
	switches.readSWITCHESData(entry);

	// Update variables
	this->entry = entry;
	setModified(false);

	// Refresh controls
	populateEntryList();
	Layout();
	Refresh();

	return true;
}
예제 #3
0
/* AnimatedEntryPanel::loadEntry
 * Loads an entry into the ANIMATED entry panel
 *******************************************************************/
bool AnimatedEntryPanel::loadEntry(ArchiveEntry* entry)
{
	// Do nothing if entry is already open
	if (this->entry == entry && !isModified())
		return true;

	// Read ANIMATED entry into texturexlist
	animated.clear();
	animated.readANIMATEDData(entry);

	// Update variables
	this->entry = entry;
	setModified(false);

	// Refresh controls
	populateEntryList();
	Layout();
	Refresh();

	return true;
}