mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
*** empty log message ***
This commit is contained in:
parent
8911e805e3
commit
3fce3f2f5e
@ -100,7 +100,15 @@ append_command_comment(EggData &data) {
|
|||||||
EggData *EggMultiBase::
|
EggData *EggMultiBase::
|
||||||
read_egg(const Filename &filename) {
|
read_egg(const Filename &filename) {
|
||||||
EggData *data = new EggData;
|
EggData *data = new EggData;
|
||||||
if (!data->read(filename)) {
|
|
||||||
|
// First, we always try to resolve a filename from the current
|
||||||
|
// directory. This means a local filename will always be found
|
||||||
|
// before the model path is searched.
|
||||||
|
Filename local_filename = filename;
|
||||||
|
DSearchPath local_path(".");
|
||||||
|
local_filename.resolve_filename(local_path);
|
||||||
|
|
||||||
|
if (!data->read(local_filename)) {
|
||||||
// Failure reading.
|
// Failure reading.
|
||||||
delete data;
|
delete data;
|
||||||
return (EggData *)NULL;
|
return (EggData *)NULL;
|
||||||
|
@ -43,9 +43,17 @@ handle_args(ProgramBase::Args &args) {
|
|||||||
// Any separate egg files that are listed on the command line will
|
// Any separate egg files that are listed on the command line will
|
||||||
// get implicitly loaded up into one big egg file.
|
// get implicitly loaded up into one big egg file.
|
||||||
|
|
||||||
|
DSearchPath local_path(".");
|
||||||
|
|
||||||
Args::const_iterator ai;
|
Args::const_iterator ai;
|
||||||
for (ai = args.begin(); ai != args.end(); ++ai) {
|
for (ai = args.begin(); ai != args.end(); ++ai) {
|
||||||
if (!_data.read(*ai)) {
|
Filename filename = *ai;
|
||||||
|
// First, we always try to resolve a filename from the current
|
||||||
|
// directory. This means a local filename will always be found
|
||||||
|
// before the model path is searched.
|
||||||
|
filename.resolve_filename(local_path);
|
||||||
|
|
||||||
|
if (!_data.read(filename)) {
|
||||||
// Rather than returning false, we simply exit here, so the
|
// Rather than returning false, we simply exit here, so the
|
||||||
// ProgramBase won't try to tell the user how to run the program
|
// ProgramBase won't try to tell the user how to run the program
|
||||||
// just because we got a bad egg file.
|
// just because we got a bad egg file.
|
||||||
|
@ -242,6 +242,42 @@ max_flt_version() {
|
|||||||
return 15.2;
|
return 15.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: FltHeader::check_version
|
||||||
|
// Access: Public
|
||||||
|
// Description: Verifies that the version number read from the header
|
||||||
|
// is an understand version number, and prints a warning
|
||||||
|
// to the user if this is not so--the reading may or may
|
||||||
|
// not succeed. Returns true if the version number is
|
||||||
|
// acceptable (and no warning is printed), or false if
|
||||||
|
// it is questionable (and a warning is printed).
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
bool FltHeader::
|
||||||
|
check_version() const {
|
||||||
|
double version = get_flt_version();
|
||||||
|
|
||||||
|
if (version < min_flt_version()) {
|
||||||
|
nout << "Warning! The version number of this file appears to be "
|
||||||
|
<< version << ", which is older than " << min_flt_version()
|
||||||
|
<< ", the oldest OpenFlight version understood by this program. "
|
||||||
|
"It is unlikely that this program will be able to read the file "
|
||||||
|
"correctly.\n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (version > max_flt_version()) {
|
||||||
|
nout << "Warning! The version number of this file appears to be "
|
||||||
|
<< version << ", which is newer than " << max_flt_version()
|
||||||
|
<< ", the newest OpenFlight version understood by this program. "
|
||||||
|
"Chances are good that the program will still be able to read it "
|
||||||
|
"correctly, but any features in the file that are specific to "
|
||||||
|
"the latest version of OpenFlight will not be understood.\n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: FltHeader::has_instance
|
// Function: FltHeader::has_instance
|
||||||
// Access: Public
|
// Access: Public
|
||||||
@ -1111,7 +1147,7 @@ extract_record(FltRecordReader &reader) {
|
|||||||
// Undocumented additional padding.
|
// Undocumented additional padding.
|
||||||
iterator.skip_bytes(4);
|
iterator.skip_bytes(4);
|
||||||
|
|
||||||
nassertr(iterator.get_remaining_size() == 0, true);
|
// nassertr(iterator.get_remaining_size() == 0, true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,6 +125,7 @@ public:
|
|||||||
double get_flt_version() const;
|
double get_flt_version() const;
|
||||||
static double min_flt_version();
|
static double min_flt_version();
|
||||||
static double max_flt_version();
|
static double max_flt_version();
|
||||||
|
bool check_version() const;
|
||||||
|
|
||||||
|
|
||||||
// Accessors into the instance pool.
|
// Accessors into the instance pool.
|
||||||
|
@ -49,6 +49,8 @@ main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
FltError result = header->read_flt(filename);
|
FltError result = header->read_flt(filename);
|
||||||
cerr << "Read result is " << result << "\n\n";
|
cerr << "Read result is " << result << "\n\n";
|
||||||
|
cerr << "Version is " << header->get_flt_version() << "\n";
|
||||||
|
header->check_version();
|
||||||
|
|
||||||
if (result == FE_ok) {
|
if (result == FE_ok) {
|
||||||
//header->write(cerr);
|
//header->write(cerr);
|
||||||
|
@ -108,6 +108,8 @@ copy_flt_file(const Filename &source, const Filename &dest,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
header->check_version();
|
||||||
|
|
||||||
// Now scan the flt file for nested references.
|
// Now scan the flt file for nested references.
|
||||||
Refs refs;
|
Refs refs;
|
||||||
Textures textures;
|
Textures textures;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user