player_param.h

説明を見る。
00001 // -*-c++-*-
00002 
00008 /*
00009  *Copyright:
00010 
00011  Copyright (C) Hidehisa AKIYAMA
00012 
00013  This code is free software; you can redistribute it and/or
00014  modify it under the terms of the GNU Lesser General Public
00015  License as published by the Free Software Foundation; either
00016  version 2.1 of the License, or (at your option) any later version.
00017 
00018  This library is distributed in the hope that it will be useful,
00019  but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021  Lesser General Public License for more details.
00022 
00023  You should have received a copy of the GNU Lesser General Public
00024  License along with this library; if not, write to the Free Software
00025  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00026 
00027  *EndCopyright:
00028  */
00029 
00031 
00032 #ifndef RCSC_PARAM_PLAYER_PARAM_H
00033 #define RCSC_PARAM_PLAYER_PARAM_H
00034 
00035 #include <rcsc/rcg/types.h>
00036 
00037 #include <boost/scoped_ptr.hpp>
00038 
00039 namespace rcsc {
00040 
00041 namespace rcg {
00042 struct player_params_t;
00043 }
00044 class ParamMap;
00045 
00050 class PlayerParam {
00051 private:
00052 
00054     boost::scoped_ptr< ParamMap > M_param_map;
00055 
00056     static const int DEFAULT_PLAYER_TYPES; 
00057     static const int DEFAULT_SUBS_MAX; 
00058     static const int DEFAULT_PT_MAX; 
00059 
00060     static const bool DEFAULT_ALLOW_MULT_DEFAULT_TYPE; 
00061 
00062     static const double DEFAULT_PLAYER_SPEED_MAX_DELTA_MIN; 
00063     static const double DEFAULT_PLAYER_SPEED_MAX_DELTA_MAX; 
00064     static const double DEFAULT_STAMINA_INC_MAX_DELTA_FACTOR; 
00065 
00066     static const double DEFAULT_PLAYER_DECAY_DELTA_MIN; 
00067     static const double DEFAULT_PLAYER_DECAY_DELTA_MAX; 
00068     static const double DEFAULT_INERTIA_MOMENT_DELTA_FACTOR; 
00069 
00070     static const double DEFAULT_DASH_POWER_RATE_DELTA_MIN; 
00071     static const double DEFAULT_DASH_POWER_RATE_DELTA_MAX; 
00072     static const double DEFAULT_PLAYER_SIZE_DELTA_FACTOR; 
00073 
00074     static const double DEFAULT_KICKABLE_MARGIN_DELTA_MIN; 
00075     static const double DEFAULT_KICKABLE_MARGIN_DELTA_MAX; 
00076     static const double DEFAULT_KICK_RAND_DELTA_FACTOR; 
00077 
00078     static const double DEFAULT_EXTRA_STAMINA_DELTA_MIN; 
00079     static const double DEFAULT_EXTRA_STAMINA_DELTA_MAX; 
00080     static const double DEFAULT_EFFORT_MAX_DELTA_FACTOR; 
00081     static const double DEFAULT_EFFORT_MIN_DELTA_FACTOR; 
00082 
00083     static const int    DEFAULT_RANDOM_SEED; 
00084 
00085     static const double DEFAULT_NEW_DASH_POWER_RATE_DELTA_MIN; 
00086     static const double DEFAULT_NEW_DASH_POWER_RATE_DELTA_MAX; 
00087     static const double DEFAULT_NEW_STAMINA_INC_MAX_DELTA_FACTOR; 
00088 
00089     int M_player_types; 
00090     int M_subs_max; 
00091     int M_pt_max; 
00092 
00093     bool M_allow_mult_default_type; 
00094 
00095     double M_player_speed_max_delta_min; 
00096     double M_player_speed_max_delta_max; 
00097     double M_stamina_inc_max_delta_factor; 
00098 
00099     double M_player_decay_delta_min; 
00100     double M_player_decay_delta_max; 
00101     double M_inertia_moment_delta_factor; 
00102 
00103     double M_dash_power_rate_delta_min; 
00104     double M_dash_power_rate_delta_max; 
00105     double M_player_size_delta_factor; 
00106 
00107     double M_kickable_margin_delta_min; 
00108     double M_kickable_margin_delta_max; 
00109     double M_kick_rand_delta_factor; 
00110 
00111     double M_extra_stamina_delta_min; 
00112     double M_extra_stamina_delta_max; 
00113     double M_effort_max_delta_factor; 
00114     double M_effort_min_delta_factor; 
00115 
00116     int M_random_seed; 
00117 
00118     double M_new_dash_power_rate_delta_min; 
00119     double M_new_dash_power_rate_delta_max; 
00120     double M_new_stamina_inc_max_delta_factor; 
00121 
00128     PlayerParam();
00129 
00130 public:
00134     ~PlayerParam();
00135 
00137     static
00138     PlayerParam & instance();
00139 
00141     inline
00142     static const
00143     PlayerParam & i()
00144       {
00145           return instance();
00146       }
00147 
00148 private:
00152     void setDefaultParam();
00153 
00157     void createMap();
00158 
00159 public:
00166     bool parse( const char * msg,
00167                 const double & version );
00168 
00169 private:
00175     bool parseV7( const char * msg );
00176 
00177 
00178 public:
00183     void convertFrom( const rcg::player_params_t & from );
00184 
00189     void convertTo( rcg::player_params_t & to ) const;
00190 
00195     std::string toStr() const;
00196 
00197 
00202     int playerTypes() const
00203       {
00204           return M_player_types;
00205       }
00206 
00211     int subsMax() const
00212       {
00213           return M_subs_max;
00214       }
00215 
00220     int ptMax() const
00221       {
00222           return M_pt_max;
00223       }
00224 
00225     bool allowMultDefaultType() const
00226       {
00227           return M_allow_mult_default_type;
00228       }
00229 
00230     const
00231     double & playerSpeedMaxDeltaMin() const
00232       {
00233           return M_player_speed_max_delta_min;
00234       }
00235     const
00236     double & playerSpeedMaxDeltaMax() const
00237       {
00238           return M_player_speed_max_delta_max;
00239       }
00240     const
00241     double & staminaIncMaxDeltaFactor() const
00242       {
00243           return M_stamina_inc_max_delta_factor;
00244       }
00245 
00246     const
00247     double & playerDecayDeltaMin() const
00248       {
00249           return M_player_decay_delta_min;
00250       }
00251     const
00252     double & playerDecayDeltaMax() const
00253       {
00254           return M_player_decay_delta_max;
00255       }
00256     const
00257     double & inertiaMomentDeltaFactor() const
00258       {
00259           return M_inertia_moment_delta_factor;
00260       }
00261 
00262     const
00263     double & dashPowerRateDeltaMin() const
00264       {
00265           return M_dash_power_rate_delta_min;
00266       }
00267     const
00268     double & dashPowerRateDeltaMax() const
00269       {
00270           return M_dash_power_rate_delta_max;
00271       }
00272     const
00273     double & playerSizeDeltaFactor() const
00274       {
00275           return M_player_size_delta_factor;
00276       }
00277 
00278     const
00279     double & kickableMarginDeltaMin() const
00280       {
00281           return M_kickable_margin_delta_min;
00282       }
00283     const
00284     double & kickableMarginDeltaMax() const
00285       {
00286           return M_kickable_margin_delta_max;
00287       }
00288     const
00289     double & kickRandDeltaFactor() const
00290       {
00291           return M_kick_rand_delta_factor;
00292       }
00293 
00294     const
00295     double & extraStaminaDeltaMin() const
00296       {
00297           return M_extra_stamina_delta_min;
00298       }
00299     const
00300     double & extraStaminaDeltaMax() const
00301       {
00302           return M_extra_stamina_delta_max;
00303       }
00304     const
00305     double & effortMaxDeltaFactor() const
00306       {
00307           return M_effort_max_delta_factor;
00308       }
00309     const
00310     double & effortMinDeltaFactor() const
00311       {
00312           return M_effort_min_delta_factor;
00313       }
00314 
00315     int randomSeed() const
00316       {
00317           return M_random_seed;
00318       }
00319 
00320     const
00321     double & newDashPowerRateDeltaMin() const
00322       {
00323           return M_new_dash_power_rate_delta_min;
00324       }
00325     const
00326     double & newDashPowerRateDeltaMax() const
00327       {
00328           return M_new_dash_power_rate_delta_max;
00329       }
00330     const
00331     double & newStaminaIncMaxDeltaFactor() const
00332       {
00333           return M_new_stamina_inc_max_delta_factor;
00334       }
00335 };
00336 
00337 }
00338 
00339 #endif

librcscに対してThu May 1 15:41:20 2008に生成されました。  doxygen 1.5.0