Browse Source

*** empty log message ***

David Rose 25 years ago
parent
commit
0505e7e7b5
2 changed files with 34 additions and 15 deletions
  1. 33 14
      dtool/pptempl/Template.models.pp
  2. 1 1
      dtool/pptempl/Template.unix.pp

+ 33 - 14
dtool/pptempl/Template.models.pp

@@ -30,11 +30,18 @@
 #defer install_model_dir $[install_dir]/$[phase_prefix]$[INSTALL_TO]
 #defer install_model_dir $[install_dir]/$[phase_prefix]$[INSTALL_TO]
 #define filter_dirs $[TARGET_DIR(filter_egg optchar_egg)]
 #define filter_dirs $[TARGET_DIR(filter_egg optchar_egg)]
 
 
-#define build_eggs $[sort \
-   $[SOURCES(flt_egg):%.flt=%.egg] \
-   $[forscopes soft_char_egg,$[POLY_MODEL:%=$[EGG_PREFIX]%.egg] $[NURBS_MODEL:%=$[EGG_PREFIX]%.egg]] \
-   $[forscopes soft_char_egg,$[ANIMS:%=$[EGG_PREFIX]%.egg]] \
-   ]
+#defer source_prefix $[SOURCE_DIR:%=%/]
+
+#define build_models \
+   $[SOURCES(flt_egg):%.flt=%.egg]
+
+#define build_chars \
+   $[forscopes soft_char_egg,$[POLY_MODEL:%=$[EGG_PREFIX]%.egg] $[NURBS_MODEL:%=$[EGG_PREFIX]%.egg]]
+
+#define build_anims \
+   $[forscopes soft_char_egg,$[ANIMS:%=$[EGG_PREFIX]%.egg]]
+
+#define build_eggs $[sort $[build_models] $[build_chars] $[build_anims]]
 #define install_eggs $[sort $[SOURCES(install_egg)] $[UNPAL_SOURCES(install_egg)]]
 #define install_eggs $[sort $[SOURCES(install_egg)] $[UNPAL_SOURCES(install_egg)]]
 
 
 #define install_egg_dirs $[sort $[forscopes install_egg,$[install_model_dir]]]
 #define install_egg_dirs $[sort $[forscopes install_egg,$[install_model_dir]]]
@@ -64,7 +71,7 @@ egg : $[egg_targets]
 
 
 #define filter_targets \
 #define filter_targets \
     $[filter_dirs] \
     $[filter_dirs] \
-    $[forscopes install_egg,$[patsubst %,$[SOURCE_DIR:%=%/]%,$[SOURCES] $[UNPAL_SOURCES]]]
+    $[forscopes install_egg,$[patsubst %,$[source_prefix]%,$[SOURCES] $[UNPAL_SOURCES]]]
 filter : egg $[filter_targets]
 filter : egg $[filter_targets]
 
 
 pal : filter $[if $[pal_egg_targets],$[pal_egg_dir]] $[pal_egg_targets]
 pal : filter $[if $[pal_egg_targets],$[pal_egg_dir]] $[pal_egg_targets]
@@ -157,8 +164,12 @@ $[target] : $[source]
     #define target $[EGG_PREFIX]$[anim].egg
     #define target $[EGG_PREFIX]$[anim].egg
     #define scene $[SCENE_PREFIX]$[anim].1-0.dsc
     #define scene $[SCENE_PREFIX]$[anim].1-0.dsc
     #define source $[DATABASE]/SCENES/$[scene]
     #define source $[DATABASE]/SCENES/$[scene]
-    #define begin $[or $[$[anim]_b],1]
-    #define end $[$[anim]_e]
+    #define begin 1
+    #define end
+    #if $[$[anim]_frames]
+      #set begin $[word 1,$[$[anim]_frames]]
+      #set end $[word 2,$[$[anim]_frames]]
+    #endif
 $[target] : $[source]
 $[target] : $[source]
 	soft2egg $[SOFT2EGG_OPTS] -a -A $[target] -N $[CHAR_NAME] -d $[DATABASE] -s $[scene] $[begin:%=-b%] $[end:%=-e%]
 	soft2egg $[SOFT2EGG_OPTS] -a -A $[target] -N $[CHAR_NAME] -d $[DATABASE] -s $[scene] $[begin:%=-b%] $[end:%=-e%]
   #end anim
   #end anim
@@ -167,7 +178,6 @@ $[target] : $[source]
 
 
 // Generic egg filters.
 // Generic egg filters.
 #forscopes filter_egg
 #forscopes filter_egg
-  #define source_prefix $[SOURCE_DIR:%=%/]
   #foreach egg $[SOURCES]
   #foreach egg $[SOURCES]
     #define source $[source_prefix]$[egg]
     #define source $[source_prefix]$[egg]
     #define target $[TARGET_DIR]/$[egg]
     #define target $[TARGET_DIR]/$[egg]
@@ -178,7 +188,6 @@ $[target] : $[source] $[pt]
 
 
 // Character optimization.
 // Character optimization.
 #forscopes optchar_egg
 #forscopes optchar_egg
-  #define source_prefix $[SOURCE_DIR:%=%/]
   #define sources $[SOURCES:%=$[source_prefix]%]
   #define sources $[SOURCES:%=$[source_prefix]%]
   #define target $[TARGET_DIR]/$[notdir $[firstword $[SOURCES]]]
   #define target $[TARGET_DIR]/$[notdir $[firstword $[SOURCES]]]
 
 
@@ -198,8 +207,8 @@ $[target] : $[sources]
 // Palettization rules.
 // Palettization rules.
 #forscopes install_egg
 #forscopes install_egg
   #foreach egg $[SOURCES]
   #foreach egg $[SOURCES]
-    #define pt $[egg:%.egg=$[SOURCE_DIR]/%.pt]
-    #define source $[SOURCE_DIR]/$[egg]
+    #define pt $[egg:%.egg=$[source_prefix]%.pt]
+    #define source $[source_prefix]$[egg]
     #define target $[pal_egg_dir]/$[egg]
     #define target $[pal_egg_dir]/$[egg]
 $[target] : $[source] $[pt]
 $[target] : $[source] $[pt]
     #if $[PHASE]
     #if $[PHASE]
@@ -225,7 +234,7 @@ $[target] : $[source]
 
 
   #end egg
   #end egg
   #foreach egg $[UNPAL_SOURCES]
   #foreach egg $[UNPAL_SOURCES]
-    #define source $[SOURCE_DIR]/$[egg]
+    #define source $[source_prefix]$[egg]
     #define target $[bam_dir]/$[egg:%.egg=%.bam]
     #define target $[bam_dir]/$[egg:%.egg=%.bam]
 $[target] : $[source]
 $[target] : $[source]
 	egg2bam -o $[target] $[source]
 	egg2bam -o $[target] $[source]
@@ -257,7 +266,7 @@ $[dest]/$[local] : $[sourcedir]/$[local]
 
 
 // Bam file installation.
 // Bam file installation.
 #forscopes install_egg
 #forscopes install_egg
-  #foreach egg $[SOURCES] $[UNPAL_SOURCE]
+  #foreach egg $[SOURCES] $[UNPAL_SOURCES]
     #define local $[egg:%.egg=%.bam]
     #define local $[egg:%.egg=%.bam]
     #define sourcedir $[bam_dir]
     #define sourcedir $[bam_dir]
     #define dest $[install_model_dir]
     #define dest $[install_model_dir]
@@ -272,6 +281,16 @@ $[dest]/$[local] : $[sourcedir]/$[local]
 
 
 
 
 
 
+//////////////////////////////////////////////////////////////////////
+#elif $[eq $[DIR_TYPE], models_group]
+//////////////////////////////////////////////////////////////////////
+
+// This is a group directory: a directory above a collection of source
+// directories, e.g. $DTOOL/src.  We don't need to output anything in
+// this directory.
+
+
+
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////
 #elif $[eq $[DIR_TYPE], models_toplevel]
 #elif $[eq $[DIR_TYPE], models_toplevel]
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////

+ 1 - 1
dtool/pptempl/Template.unix.pp

@@ -788,7 +788,7 @@ $[install_headers_dir]/$[CONFIG_HEADER] : $[CONFIG_HEADER]
 
 
 
 
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////
-#elif $[or $[eq $[DIR_TYPE], models],$[eq $[DIR_TYPE], models_toplevel]]
+#elif $[or $[eq $[DIR_TYPE], models],$[eq $[DIR_TYPE], models_toplevel],$[eq $[DIR_TYPE], models_group]]
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////
 
 
 #include $[THISDIRPREFIX]Template.models.pp
 #include $[THISDIRPREFIX]Template.models.pp