open_toontown_panda3d/panda/src/char/config_char.cxx

85 lines
2.8 KiB
C++

// Filename: config_char.cxx
// Created by: drose (28Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
//
// All use of this software is subject to the terms of the Panda 3d
// Software license. You should have received a copy of this license
// along with this source code; you will also find a current copy of
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
//
// To contact the maintainers of this program write to
// panda3d-general@lists.sourceforge.net .
//
////////////////////////////////////////////////////////////////////
#include "config_char.h"
#include "character.h"
#include "characterJoint.h"
#include "characterJointBundle.h"
#include "characterSlider.h"
#include "characterVertexSlider.h"
#include "jointVertexTransform.h"
#include "dconfig.h"
#include "lmatrix4.h"
Configure(config_char);
NotifyCategoryDef(char, "");
ConfigureFn(config_char) {
init_libchar();
}
ConfigVariableBool even_animation
("even-animation", false,
PRC_DESC("When this is true, characters' vertices will be recomputed "
"every frame, whether they need it or not. This will tend to "
"balance out the frame rate so that it is more uniformly slow. "
"The default is to compute vertices only when they need to be "
"computed, which can lead to an uneven frame rate."));
////////////////////////////////////////////////////////////////////
// Function: init_libchar
// Description: Initializes the library. This must be called at
// least once before any of the functions or classes in
// this library can be used. Normally it will be
// called by the static initializers and need not be
// called explicitly, but special cases exist.
////////////////////////////////////////////////////////////////////
void
init_libchar() {
static bool initialized = false;
if (initialized) {
return;
}
initialized = true;
Character::init_type();
CharacterJoint::init_type();
CharacterJointBundle::init_type();
CharacterSlider::init_type();
CharacterVertexSlider::init_type();
JointVertexTransform::init_type();
// This isn't defined in this package, but it *is* essential that it
// be initialized. We have to do it explicitly here since template
// statics don't necessarily resolve very well across dynamic
// libraries.
LMatrix4f::init_type();
//Registration of writeable object's creation
//functions with BamReader's factory
Character::register_with_read_factory();
CharacterJoint::register_with_read_factory();
CharacterJointBundle::register_with_read_factory();
CharacterSlider::register_with_read_factory();
CharacterVertexSlider::register_with_read_factory();
JointVertexTransform::register_with_read_factory();
}