summaryrefslogtreecommitdiffstats
path: root/sdk/rwsdk/include
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sdk/rwsdk/include/d3d8/errcom.def (renamed from rwsdk/include/d3d8/errcom.def)0
-rw-r--r--sdk/rwsdk/include/d3d8/errcore.def (renamed from rwsdk/include/d3d8/errcore.def)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpanisot.h (renamed from rwsdk/include/d3d8/rpanisot.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpanisot.rpe (renamed from rwsdk/include/d3d8/rpanisot.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpcollis.h (renamed from rwsdk/include/d3d8/rpcollis.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpcollis.rpe (renamed from rwsdk/include/d3d8/rpcollis.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpcriter.h (renamed from rwsdk/include/d3d8/rpcriter.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpdbgerr.c (renamed from rwsdk/include/d3d8/rpdbgerr.c)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpdbgerr.h (renamed from rwsdk/include/d3d8/rpdbgerr.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpdmorph.h (renamed from rwsdk/include/d3d8/rpdmorph.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpdmorph.rpe (renamed from rwsdk/include/d3d8/rpdmorph.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rperror.h (renamed from rwsdk/include/d3d8/rperror.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rphanim.h (renamed from rwsdk/include/d3d8/rphanim.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rphanim.rpe (renamed from rwsdk/include/d3d8/rphanim.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rplodatm.h (renamed from rwsdk/include/d3d8/rplodatm.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rplodatm.rpe (renamed from rwsdk/include/d3d8/rplodatm.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rplogo.h (renamed from rwsdk/include/d3d8/rplogo.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rplogo.rpe (renamed from rwsdk/include/d3d8/rplogo.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpltmap.h (renamed from rwsdk/include/d3d8/rpltmap.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpltmap.rpe (renamed from rwsdk/include/d3d8/rpltmap.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpmatfx.h (renamed from rwsdk/include/d3d8/rpmatfx.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpmatfx.rpe (renamed from rwsdk/include/d3d8/rpmatfx.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpmipkl.h (renamed from rwsdk/include/d3d8/rpmipkl.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpmipkl.rpe (renamed from rwsdk/include/d3d8/rpmipkl.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpmorph.h (renamed from rwsdk/include/d3d8/rpmorph.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpmorph.rpe (renamed from rwsdk/include/d3d8/rpmorph.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rppatch.h (renamed from rwsdk/include/d3d8/rppatch.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rppatch.rpe (renamed from rwsdk/include/d3d8/rppatch.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpprtstd.h (renamed from rwsdk/include/d3d8/rpprtstd.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpprtstd.rpe (renamed from rwsdk/include/d3d8/rpprtstd.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpptank.h (renamed from rwsdk/include/d3d8/rpptank.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpptank.rpe (renamed from rwsdk/include/d3d8/rpptank.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rppvs.h (renamed from rwsdk/include/d3d8/rppvs.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rppvs.rpe (renamed from rwsdk/include/d3d8/rppvs.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rprandom.h (renamed from rwsdk/include/d3d8/rprandom.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rprandom.rpe (renamed from rwsdk/include/d3d8/rprandom.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpskin.h (renamed from rwsdk/include/d3d8/rpskin.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpskin.rpe (renamed from rwsdk/include/d3d8/rpskin.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpspline.h (renamed from rwsdk/include/d3d8/rpspline.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpspline.rpe (renamed from rwsdk/include/d3d8/rpspline.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpusrdat.h (renamed from rwsdk/include/d3d8/rpusrdat.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpusrdat.rpe (renamed from rwsdk/include/d3d8/rpusrdat.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpworld.h (renamed from rwsdk/include/d3d8/rpworld.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rpworld.rpe (renamed from rwsdk/include/d3d8/rpworld.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rt2d.h (renamed from rwsdk/include/d3d8/rt2d.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rt2d.rpe (renamed from rwsdk/include/d3d8/rt2d.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rt2danim.h (renamed from rwsdk/include/d3d8/rt2danim.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rt2danim.rpe (renamed from rwsdk/include/d3d8/rt2danim.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtanim.h638
-rw-r--r--sdk/rwsdk/include/d3d8/rtanim.rpe168
-rw-r--r--sdk/rwsdk/include/d3d8/rtbary.h (renamed from rwsdk/include/d3d8/rtbary.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtbary.rpe (renamed from rwsdk/include/d3d8/rtbary.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtbezpat.h (renamed from rwsdk/include/d3d8/rtbezpat.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtbezpat.rpe (renamed from rwsdk/include/d3d8/rtbezpat.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtbmp.h (renamed from rwsdk/include/d3d8/rtbmp.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtbmp.rpe (renamed from rwsdk/include/d3d8/rtbmp.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtcharse.h (renamed from rwsdk/include/d3d8/rtcharse.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtcharse.rpe (renamed from rwsdk/include/d3d8/rtcharse.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtgncpip.h256
-rw-r--r--sdk/rwsdk/include/d3d8/rtgncpip.rpe172
-rw-r--r--sdk/rwsdk/include/d3d8/rtimport.h (renamed from rwsdk/include/d3d8/rtimport.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtimport.rpe (renamed from rwsdk/include/d3d8/rtimport.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtintsec.h (renamed from rwsdk/include/d3d8/rtintsec.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtintsec.rpe (renamed from rwsdk/include/d3d8/rtintsec.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtltmap.h (renamed from rwsdk/include/d3d8/rtltmap.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtltmap.rpe (renamed from rwsdk/include/d3d8/rtltmap.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtmipk.h (renamed from rwsdk/include/d3d8/rtmipk.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtmipk.rpe (renamed from rwsdk/include/d3d8/rtmipk.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtpick.h (renamed from rwsdk/include/d3d8/rtpick.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtpick.rpe (renamed from rwsdk/include/d3d8/rtpick.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtpitexd.h (renamed from rwsdk/include/d3d8/rtpitexd.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtpitexd.rpe (renamed from rwsdk/include/d3d8/rtpitexd.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtpng.h (renamed from rwsdk/include/d3d8/rtpng.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtpng.rpe (renamed from rwsdk/include/d3d8/rtpng.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtquat.h (renamed from rwsdk/include/d3d8/rtquat.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtquat.rpe (renamed from rwsdk/include/d3d8/rtquat.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtras.h (renamed from rwsdk/include/d3d8/rtras.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtras.rpe (renamed from rwsdk/include/d3d8/rtras.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtray.h (renamed from rwsdk/include/d3d8/rtray.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtray.rpe (renamed from rwsdk/include/d3d8/rtray.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtskinsp.h57
-rw-r--r--sdk/rwsdk/include/d3d8/rtskinsp.rpe163
-rw-r--r--sdk/rwsdk/include/d3d8/rtslerp.h (renamed from rwsdk/include/d3d8/rtslerp.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtslerp.rpe (renamed from rwsdk/include/d3d8/rtslerp.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtsplpvs.h (renamed from rwsdk/include/d3d8/rtsplpvs.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtsplpvs.rpe (renamed from rwsdk/include/d3d8/rtsplpvs.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rttiff.h (renamed from rwsdk/include/d3d8/rttiff.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rttiff.rpe (renamed from rwsdk/include/d3d8/rttiff.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rttilerd.h (renamed from rwsdk/include/d3d8/rttilerd.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rttilerd.rpe (renamed from rwsdk/include/d3d8/rttilerd.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rttoc.h (renamed from rwsdk/include/d3d8/rttoc.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rttoc.rpe (renamed from rwsdk/include/d3d8/rttoc.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtvcat.h (renamed from rwsdk/include/d3d8/rtvcat.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtvcat.rpe (renamed from rwsdk/include/d3d8/rtvcat.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtworld.h (renamed from rwsdk/include/d3d8/rtworld.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rtworld.rpe (renamed from rwsdk/include/d3d8/rtworld.rpe)0
-rw-r--r--sdk/rwsdk/include/d3d8/rwcore.h (renamed from rwsdk/include/d3d8/rwcore.h)0
-rw-r--r--sdk/rwsdk/include/d3d8/rwplcore.h (renamed from rwsdk/include/d3d8/rwplcore.h)0
98 files changed, 1454 insertions, 0 deletions
diff --git a/rwsdk/include/d3d8/errcom.def b/sdk/rwsdk/include/d3d8/errcom.def
index 25f44e1e..25f44e1e 100644
--- a/rwsdk/include/d3d8/errcom.def
+++ b/sdk/rwsdk/include/d3d8/errcom.def
diff --git a/rwsdk/include/d3d8/errcore.def b/sdk/rwsdk/include/d3d8/errcore.def
index c71eed5a..c71eed5a 100644
--- a/rwsdk/include/d3d8/errcore.def
+++ b/sdk/rwsdk/include/d3d8/errcore.def
diff --git a/rwsdk/include/d3d8/rpanisot.h b/sdk/rwsdk/include/d3d8/rpanisot.h
index 323786f4..323786f4 100644
--- a/rwsdk/include/d3d8/rpanisot.h
+++ b/sdk/rwsdk/include/d3d8/rpanisot.h
diff --git a/rwsdk/include/d3d8/rpanisot.rpe b/sdk/rwsdk/include/d3d8/rpanisot.rpe
index 0464081f..0464081f 100644
--- a/rwsdk/include/d3d8/rpanisot.rpe
+++ b/sdk/rwsdk/include/d3d8/rpanisot.rpe
diff --git a/rwsdk/include/d3d8/rpcollis.h b/sdk/rwsdk/include/d3d8/rpcollis.h
index 23e67f35..23e67f35 100644
--- a/rwsdk/include/d3d8/rpcollis.h
+++ b/sdk/rwsdk/include/d3d8/rpcollis.h
diff --git a/rwsdk/include/d3d8/rpcollis.rpe b/sdk/rwsdk/include/d3d8/rpcollis.rpe
index 49ad286f..49ad286f 100644
--- a/rwsdk/include/d3d8/rpcollis.rpe
+++ b/sdk/rwsdk/include/d3d8/rpcollis.rpe
diff --git a/rwsdk/include/d3d8/rpcriter.h b/sdk/rwsdk/include/d3d8/rpcriter.h
index de55389f..de55389f 100644
--- a/rwsdk/include/d3d8/rpcriter.h
+++ b/sdk/rwsdk/include/d3d8/rpcriter.h
diff --git a/rwsdk/include/d3d8/rpdbgerr.c b/sdk/rwsdk/include/d3d8/rpdbgerr.c
index 70bc941d..70bc941d 100644
--- a/rwsdk/include/d3d8/rpdbgerr.c
+++ b/sdk/rwsdk/include/d3d8/rpdbgerr.c
diff --git a/rwsdk/include/d3d8/rpdbgerr.h b/sdk/rwsdk/include/d3d8/rpdbgerr.h
index e0500057..e0500057 100644
--- a/rwsdk/include/d3d8/rpdbgerr.h
+++ b/sdk/rwsdk/include/d3d8/rpdbgerr.h
diff --git a/rwsdk/include/d3d8/rpdmorph.h b/sdk/rwsdk/include/d3d8/rpdmorph.h
index 89c51b31..89c51b31 100644
--- a/rwsdk/include/d3d8/rpdmorph.h
+++ b/sdk/rwsdk/include/d3d8/rpdmorph.h
diff --git a/rwsdk/include/d3d8/rpdmorph.rpe b/sdk/rwsdk/include/d3d8/rpdmorph.rpe
index b35acc4e..b35acc4e 100644
--- a/rwsdk/include/d3d8/rpdmorph.rpe
+++ b/sdk/rwsdk/include/d3d8/rpdmorph.rpe
diff --git a/rwsdk/include/d3d8/rperror.h b/sdk/rwsdk/include/d3d8/rperror.h
index 2a8c5630..2a8c5630 100644
--- a/rwsdk/include/d3d8/rperror.h
+++ b/sdk/rwsdk/include/d3d8/rperror.h
diff --git a/rwsdk/include/d3d8/rphanim.h b/sdk/rwsdk/include/d3d8/rphanim.h
index 0d1bba7a..0d1bba7a 100644
--- a/rwsdk/include/d3d8/rphanim.h
+++ b/sdk/rwsdk/include/d3d8/rphanim.h
diff --git a/rwsdk/include/d3d8/rphanim.rpe b/sdk/rwsdk/include/d3d8/rphanim.rpe
index 1c05d0e9..1c05d0e9 100644
--- a/rwsdk/include/d3d8/rphanim.rpe
+++ b/sdk/rwsdk/include/d3d8/rphanim.rpe
diff --git a/rwsdk/include/d3d8/rplodatm.h b/sdk/rwsdk/include/d3d8/rplodatm.h
index 4e9c8648..4e9c8648 100644
--- a/rwsdk/include/d3d8/rplodatm.h
+++ b/sdk/rwsdk/include/d3d8/rplodatm.h
diff --git a/rwsdk/include/d3d8/rplodatm.rpe b/sdk/rwsdk/include/d3d8/rplodatm.rpe
index a5764cfc..a5764cfc 100644
--- a/rwsdk/include/d3d8/rplodatm.rpe
+++ b/sdk/rwsdk/include/d3d8/rplodatm.rpe
diff --git a/rwsdk/include/d3d8/rplogo.h b/sdk/rwsdk/include/d3d8/rplogo.h
index a46823ac..a46823ac 100644
--- a/rwsdk/include/d3d8/rplogo.h
+++ b/sdk/rwsdk/include/d3d8/rplogo.h
diff --git a/rwsdk/include/d3d8/rplogo.rpe b/sdk/rwsdk/include/d3d8/rplogo.rpe
index a7f66565..a7f66565 100644
--- a/rwsdk/include/d3d8/rplogo.rpe
+++ b/sdk/rwsdk/include/d3d8/rplogo.rpe
diff --git a/rwsdk/include/d3d8/rpltmap.h b/sdk/rwsdk/include/d3d8/rpltmap.h
index 18c91955..18c91955 100644
--- a/rwsdk/include/d3d8/rpltmap.h
+++ b/sdk/rwsdk/include/d3d8/rpltmap.h
diff --git a/rwsdk/include/d3d8/rpltmap.rpe b/sdk/rwsdk/include/d3d8/rpltmap.rpe
index 6e58b62b..6e58b62b 100644
--- a/rwsdk/include/d3d8/rpltmap.rpe
+++ b/sdk/rwsdk/include/d3d8/rpltmap.rpe
diff --git a/rwsdk/include/d3d8/rpmatfx.h b/sdk/rwsdk/include/d3d8/rpmatfx.h
index fb7ade45..fb7ade45 100644
--- a/rwsdk/include/d3d8/rpmatfx.h
+++ b/sdk/rwsdk/include/d3d8/rpmatfx.h
diff --git a/rwsdk/include/d3d8/rpmatfx.rpe b/sdk/rwsdk/include/d3d8/rpmatfx.rpe
index ba83d96a..ba83d96a 100644
--- a/rwsdk/include/d3d8/rpmatfx.rpe
+++ b/sdk/rwsdk/include/d3d8/rpmatfx.rpe
diff --git a/rwsdk/include/d3d8/rpmipkl.h b/sdk/rwsdk/include/d3d8/rpmipkl.h
index 82ad7f03..82ad7f03 100644
--- a/rwsdk/include/d3d8/rpmipkl.h
+++ b/sdk/rwsdk/include/d3d8/rpmipkl.h
diff --git a/rwsdk/include/d3d8/rpmipkl.rpe b/sdk/rwsdk/include/d3d8/rpmipkl.rpe
index 0464081f..0464081f 100644
--- a/rwsdk/include/d3d8/rpmipkl.rpe
+++ b/sdk/rwsdk/include/d3d8/rpmipkl.rpe
diff --git a/rwsdk/include/d3d8/rpmorph.h b/sdk/rwsdk/include/d3d8/rpmorph.h
index 52ea70df..52ea70df 100644
--- a/rwsdk/include/d3d8/rpmorph.h
+++ b/sdk/rwsdk/include/d3d8/rpmorph.h
diff --git a/rwsdk/include/d3d8/rpmorph.rpe b/sdk/rwsdk/include/d3d8/rpmorph.rpe
index 47834a81..47834a81 100644
--- a/rwsdk/include/d3d8/rpmorph.rpe
+++ b/sdk/rwsdk/include/d3d8/rpmorph.rpe
diff --git a/rwsdk/include/d3d8/rppatch.h b/sdk/rwsdk/include/d3d8/rppatch.h
index 0b54fb1b..0b54fb1b 100644
--- a/rwsdk/include/d3d8/rppatch.h
+++ b/sdk/rwsdk/include/d3d8/rppatch.h
diff --git a/rwsdk/include/d3d8/rppatch.rpe b/sdk/rwsdk/include/d3d8/rppatch.rpe
index 85dca470..85dca470 100644
--- a/rwsdk/include/d3d8/rppatch.rpe
+++ b/sdk/rwsdk/include/d3d8/rppatch.rpe
diff --git a/rwsdk/include/d3d8/rpprtstd.h b/sdk/rwsdk/include/d3d8/rpprtstd.h
index ba0bf1d6..ba0bf1d6 100644
--- a/rwsdk/include/d3d8/rpprtstd.h
+++ b/sdk/rwsdk/include/d3d8/rpprtstd.h
diff --git a/rwsdk/include/d3d8/rpprtstd.rpe b/sdk/rwsdk/include/d3d8/rpprtstd.rpe
index d628c6c0..d628c6c0 100644
--- a/rwsdk/include/d3d8/rpprtstd.rpe
+++ b/sdk/rwsdk/include/d3d8/rpprtstd.rpe
diff --git a/rwsdk/include/d3d8/rpptank.h b/sdk/rwsdk/include/d3d8/rpptank.h
index d4c1116d..d4c1116d 100644
--- a/rwsdk/include/d3d8/rpptank.h
+++ b/sdk/rwsdk/include/d3d8/rpptank.h
diff --git a/rwsdk/include/d3d8/rpptank.rpe b/sdk/rwsdk/include/d3d8/rpptank.rpe
index 2a9b45d3..2a9b45d3 100644
--- a/rwsdk/include/d3d8/rpptank.rpe
+++ b/sdk/rwsdk/include/d3d8/rpptank.rpe
diff --git a/rwsdk/include/d3d8/rppvs.h b/sdk/rwsdk/include/d3d8/rppvs.h
index 08738933..08738933 100644
--- a/rwsdk/include/d3d8/rppvs.h
+++ b/sdk/rwsdk/include/d3d8/rppvs.h
diff --git a/rwsdk/include/d3d8/rppvs.rpe b/sdk/rwsdk/include/d3d8/rppvs.rpe
index 62c983b0..62c983b0 100644
--- a/rwsdk/include/d3d8/rppvs.rpe
+++ b/sdk/rwsdk/include/d3d8/rppvs.rpe
diff --git a/rwsdk/include/d3d8/rprandom.h b/sdk/rwsdk/include/d3d8/rprandom.h
index aebbfed9..aebbfed9 100644
--- a/rwsdk/include/d3d8/rprandom.h
+++ b/sdk/rwsdk/include/d3d8/rprandom.h
diff --git a/rwsdk/include/d3d8/rprandom.rpe b/sdk/rwsdk/include/d3d8/rprandom.rpe
index d3fe964b..d3fe964b 100644
--- a/rwsdk/include/d3d8/rprandom.rpe
+++ b/sdk/rwsdk/include/d3d8/rprandom.rpe
diff --git a/rwsdk/include/d3d8/rpskin.h b/sdk/rwsdk/include/d3d8/rpskin.h
index 8a6ea204..8a6ea204 100644
--- a/rwsdk/include/d3d8/rpskin.h
+++ b/sdk/rwsdk/include/d3d8/rpskin.h
diff --git a/rwsdk/include/d3d8/rpskin.rpe b/sdk/rwsdk/include/d3d8/rpskin.rpe
index 02d7e162..02d7e162 100644
--- a/rwsdk/include/d3d8/rpskin.rpe
+++ b/sdk/rwsdk/include/d3d8/rpskin.rpe
diff --git a/rwsdk/include/d3d8/rpspline.h b/sdk/rwsdk/include/d3d8/rpspline.h
index df3a21d9..df3a21d9 100644
--- a/rwsdk/include/d3d8/rpspline.h
+++ b/sdk/rwsdk/include/d3d8/rpspline.h
diff --git a/rwsdk/include/d3d8/rpspline.rpe b/sdk/rwsdk/include/d3d8/rpspline.rpe
index 55748bdd..55748bdd 100644
--- a/rwsdk/include/d3d8/rpspline.rpe
+++ b/sdk/rwsdk/include/d3d8/rpspline.rpe
diff --git a/rwsdk/include/d3d8/rpusrdat.h b/sdk/rwsdk/include/d3d8/rpusrdat.h
index 92a56e31..92a56e31 100644
--- a/rwsdk/include/d3d8/rpusrdat.h
+++ b/sdk/rwsdk/include/d3d8/rpusrdat.h
diff --git a/rwsdk/include/d3d8/rpusrdat.rpe b/sdk/rwsdk/include/d3d8/rpusrdat.rpe
index f5879a00..f5879a00 100644
--- a/rwsdk/include/d3d8/rpusrdat.rpe
+++ b/sdk/rwsdk/include/d3d8/rpusrdat.rpe
diff --git a/rwsdk/include/d3d8/rpworld.h b/sdk/rwsdk/include/d3d8/rpworld.h
index 0d0489ce..0d0489ce 100644
--- a/rwsdk/include/d3d8/rpworld.h
+++ b/sdk/rwsdk/include/d3d8/rpworld.h
diff --git a/rwsdk/include/d3d8/rpworld.rpe b/sdk/rwsdk/include/d3d8/rpworld.rpe
index 080eefa5..080eefa5 100644
--- a/rwsdk/include/d3d8/rpworld.rpe
+++ b/sdk/rwsdk/include/d3d8/rpworld.rpe
diff --git a/rwsdk/include/d3d8/rt2d.h b/sdk/rwsdk/include/d3d8/rt2d.h
index 0584d3a5..0584d3a5 100644
--- a/rwsdk/include/d3d8/rt2d.h
+++ b/sdk/rwsdk/include/d3d8/rt2d.h
diff --git a/rwsdk/include/d3d8/rt2d.rpe b/sdk/rwsdk/include/d3d8/rt2d.rpe
index b18db155..b18db155 100644
--- a/rwsdk/include/d3d8/rt2d.rpe
+++ b/sdk/rwsdk/include/d3d8/rt2d.rpe
diff --git a/rwsdk/include/d3d8/rt2danim.h b/sdk/rwsdk/include/d3d8/rt2danim.h
index 996262af..996262af 100644
--- a/rwsdk/include/d3d8/rt2danim.h
+++ b/sdk/rwsdk/include/d3d8/rt2danim.h
diff --git a/rwsdk/include/d3d8/rt2danim.rpe b/sdk/rwsdk/include/d3d8/rt2danim.rpe
index 0e61ec5c..0e61ec5c 100644
--- a/rwsdk/include/d3d8/rt2danim.rpe
+++ b/sdk/rwsdk/include/d3d8/rt2danim.rpe
diff --git a/sdk/rwsdk/include/d3d8/rtanim.h b/sdk/rwsdk/include/d3d8/rtanim.h
new file mode 100644
index 00000000..4def7f1f
--- /dev/null
+++ b/sdk/rwsdk/include/d3d8/rtanim.h
@@ -0,0 +1,638 @@
+#ifndef RTANIM_H
+#define RTANIM_H
+
+#include <rtanim.rpe> /* automatically generated header file */
+
+#define rtANIMSTREAMCURRENTVERSION 0x100
+
+/* Doxygen plugin groups. */
+
+/**
+ * \defgroup rtanim RtAnim
+ * \ingroup animtools
+ *
+ * Animation Toolkit for RenderWare Graphics.
+ */
+
+/**
+ * \ingroup rtanim
+ * Typedef for struct \ref RtAnimAnimation.
+ */
+typedef struct RtAnimAnimation RtAnimAnimation;
+
+/*
+ * The following CallBacks are needed for each interpolation scheme.
+ * See RtAnimInterpolatorInfo.
+ */
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameApplyCallBack
+ * defines a callback function for converting
+ * an interpolated animation keyframe into the required result.
+ *
+ * \param result Void pointer to store the output of the conversion.
+ * \param voidIFrame Void pointer to the keyframe and should be cast
+ * to the interpolated keyframe type this callback
+ * is for.
+ */
+typedef void (*RtAnimKeyFrameApplyCallBack) (void *result, void *voidIFrame);
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameBlendCallBack
+ * defines a callback function for blending between two
+ * interpolated keyframes by the given blend factor. This is used for
+ * blending the states of two different \ref RtAnimInterpolator objects.
+ * The \ref RtAnimKeyFrameInterpolateCallBack is used for interpolating
+ * actual animation keyframes into an interpolated frame.
+ *
+ * \param voidOut Void pointer to store the output of the blend.
+ * \param voidIn1 Void pointer containing the first input
+ * interpolated keyframe.
+ * \param voidIn2 Void pointer containing the second input
+ * interpolated keyframe.
+ * \param alpha \ref RwReal containing the blend factor.
+ */
+typedef void (*RtAnimKeyFrameBlendCallBack) (void *voidOut, void *voidIn1,
+ void *voidIn2, RwReal alpha);
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameInterpolateCallBack
+ * defines a callback function for interpolating between two
+ * animation keyframes according to the given time. The output is
+ * an interpolated frame object residing in an \ref RtAnimInterpolator
+ * and will usually have the same structure as the keyframe apart from
+ * the header data (\ref RtAnimInterpFrameHeader).
+ *
+ * \param voidOut Void pointer for the output of the interpolation.
+ * \param voidIn1 Void pointer containing the first input keyframe.
+ * \param voidIn2 Void pointer containing the second input keyframe.
+ * \param time \ref RwReal containing the time at which to interpolate.
+ */
+typedef void (*RtAnimKeyFrameInterpolateCallBack) (void *voidOut, void *voidIn1,
+ void *voidIn2, RwReal time);
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameAddCallBack
+ * defines a callback function for adding two interpolated
+ * keyframes together. This is used when adding the states of two
+ * \ref RtAnimInterpolator objects, such as when adding a delta animation
+ * to a base animation.
+ *
+ * \param voidOut Void pointer for the output interpolated frame.
+ * \param voidIn1 Void pointer containing the first input
+ * interpoalted keyframe.
+ * \param voidIn2 Void pointer containing the second input
+ * interpolated keyframe.
+ */
+typedef void (*RtAnimKeyFrameAddCallBack) (void *voidOut, void *voidIn1,
+ void *voidIn2);
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameMulRecipCallBack
+ * defines a callback function for multiplying a keyframe
+ * by the inverse of another keyframe. This is used for creating delta
+ * animations.
+ *
+ * \param voidFrame Void pointer for the keyframe to be modified.
+ * \param voidStart Void pointer for the start keyframe to take the reciprocal of.
+ */
+typedef void (*RtAnimKeyFrameMulRecipCallBack)
+ (void *voidFrame, void *voidStart);
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameStreamReadCallBack
+ * defines a callback function for reading in keyframes
+ * from an \ref RwStream for the given animation.
+ *
+ * \param stream Pointer to the \ref RwStream to read the keyframes from.
+ * \param animation Pointer to the \ref RtAnimAnimation to read the keyframes into.
+ *
+ * \return Pointer to the \ref RtAnimAnimation.
+ */
+typedef RtAnimAnimation * (*RtAnimKeyFrameStreamReadCallBack)
+ (RwStream *stream, RtAnimAnimation *animation);
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameStreamWriteCallBack
+ * defines a callback function for writing keyframes from the
+ * given animation to an \ref RwStream.
+ *
+ * \param animation Pointer to the \ref RtAnimAnimation to write out from.
+ * \param stream Pointer to the \ref RwStream to write the keyframes to.
+ *
+ * \return \ref RwBool, TRUE if successful.
+ */
+typedef RwBool (*RtAnimKeyFrameStreamWriteCallBack)
+ (RtAnimAnimation *animation, RwStream *stream);
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameStreamGetSizeCallBack
+ * defines a callback function for calculating the binary stream
+ * size of keyframe data within an animation.
+ *
+ * \param animation Pointer to the \ref RtAnimAnimation to calculate sizes from.
+ *
+ * \return \ref RwInt32 containing the size, in bytes, of the keyframe data.
+ */
+typedef RwInt32 (*RtAnimKeyFrameStreamGetSizeCallBack)
+ (RtAnimAnimation *animation);
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimInterpolatorInfo
+ * Typedef for struct \ref RtAnimInterpolatorInfo
+ */
+typedef struct RtAnimInterpolatorInfo RtAnimInterpolatorInfo;
+
+/**
+ * \ingroup rtanim
+ * \struct RtAnimInterpolatorInfo
+ * This structure is used to hold information for a keyframe interpolation scheme.
+ *
+ * \see RtAnimRegisterInterpolationScheme
+ * \see RtAnimGetInterpolatorInfo
+ */
+struct RtAnimInterpolatorInfo
+{
+ RwInt32 typeID;
+ /**< The ID of the interpolation scheme. */
+ RwInt32 keyFrameSize;
+ /**< Size, in bytes, of the keyframe structure. */
+ RtAnimKeyFrameApplyCallBack keyFrameApplyCB;
+ /**< Pointer to a function that converts a keyframe to the needed
+ * format. This function is never called from the \ref rtanim
+ * toolkit (as the toolit doesn't know the data layout of the
+ * results) but is stored to ease the creation of overloaded
+ * interpolators. */
+ RtAnimKeyFrameBlendCallBack keyFrameBlendCB;
+ /**< Pointer to a function that blends between two
+ * interpolated keyframes, for the purpose of blending
+ * between the states of two \ref RtAnimInterpolator objects. */
+ RtAnimKeyFrameInterpolateCallBack keyFrameInterpolateCB;
+ /**< Pointer to a function that interpolates between two keyframes
+ * for a given time in between. */
+ RtAnimKeyFrameAddCallBack keyFrameAddCB;
+ /**< Pointer to a function that adds two interpolated keyframes
+ * for the purpose of adding the states of two
+ * \ref RtAnimInterpolator objects. */
+ RtAnimKeyFrameMulRecipCallBack keyFrameMulRecipCB;
+ /**< Pointer to a function that multiplies a keyframe by the
+ * reciprocal of another. */
+ RtAnimKeyFrameStreamReadCallBack keyFrameStreamReadCB;
+ /**< Pointer to a function that reads the keyframes from a stream
+ * for a given animation. */
+ RtAnimKeyFrameStreamWriteCallBack keyFrameStreamWriteCB;
+ /**< Pointer to a function that writes the keyframes to a stream for
+ * a given animation. */
+ RtAnimKeyFrameStreamGetSizeCallBack keyFrameStreamGetSizeCB;
+ /**< Pointer to a function that returns the binary stream size of
+ * the keyframes for a given animation. */
+};
+
+
+/**
+ * \ingroup rtanim
+ * \struct RtAnimAnimation
+ * A keyframed animation consists of an array of keyframe structures,
+ * along with some flags and a duration.
+ *
+ * The keyframes should be presented in the order they are needed
+ * to animate forwards through time. That is, the next keyframe
+ * at some point in the sequence should correspond to the node whose
+ * previous two keyframes are next to expire as an interpolation
+ * pair.
+ *
+ * Put another way, the correct ordering can be achieved by sorting
+ * an unordered keyframe array using the following primary and secondary
+ * sort keys:-
+ *
+ * - time of previous keyframe for node
+ * - node index
+ *
+ * An example is shown in the following diagram, where each vertical bar
+ * indicates a keyframe point in time. The position of the keyframe
+ * within the animation sequence is shown by an index to the left of
+ * each bar.
+ *
+ * \verbatim
+
+ t=0 t=duration
+ node 0 kf0..| kf3.......| kf8....| kf10....|
+ node 1 kf1..| kf4...| kf6........| kf11....|
+ node 2 kf2..| kf5.....| kf7..| kf9.........|
+
+ \endverbatim
+ *
+ * Each node MUST have an initial keyframe at time = 0.0, and a terminal
+ * keyframe at time = duration of the animation.
+ *
+ * Pointers link all of the keyframes for a particular node backwards
+ * through time in a list.
+ *
+ * \see RtAnimAnimationCreate
+ */
+struct RtAnimAnimation
+{
+ RtAnimInterpolatorInfo *interpInfo;
+ /**< Pointer to interpolation scheme information */
+ RwInt32 numFrames;
+ /**< Number of keyframes in the animation */
+ RwInt32 flags;
+ /**< Specifies details about animation,
+ * relative translation modes etc. */
+ RwReal duration;
+ /**< Duration of animation in seconds */
+ void *pFrames;
+ /**< Pointer to the animation keyframes */
+};
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimKeyFrameHeader
+ * Typedef for struct RtAnimKeyFrameHeader
+ */
+typedef struct RtAnimKeyFrameHeader RtAnimKeyFrameHeader;
+
+/**
+ * \ingroup rtanim
+ * \struct RtAnimKeyFrameHeader
+ * holds header information for a keyframe. All keyframe structures used with
+ * the overloadable interpolation system should start with this data.
+ *
+ * \see RtAnimRegisterInterpolationScheme
+ */
+struct RtAnimKeyFrameHeader
+{
+ void *prevFrame;
+ /**< Previous keyframe for particular hierarchy node */
+ RwReal time;
+ /**< Time at keyframe */
+};
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimInterpFrameHeader
+ * Typedef for struct RtAnimInterpFrameHeader
+ */
+typedef struct RtAnimInterpFrameHeader RtAnimInterpFrameHeader;
+
+/**
+ * \ingroup rtanim
+ * \struct RtAnimInterpFrameHeader
+ * is the header for an interpolated animation frame, intermediate
+ * between a keyframe pair. This structure is intentionally the same size as an
+ * \ref RtAnimKeyFrameHeader, so that an interpolated frame and key frame data
+ * block can be otherwise identical. It relies on the
+ * fact that the prevFrame and time fields of a keyframe header are not
+ * relevant to an interpolated frame. These fields should therefore not be
+ * be modified by a custom keyframe interpolator.
+ *
+ * \see RtAnimRegisterInterpolationScheme
+ */
+struct RtAnimInterpFrameHeader
+{
+ RtAnimKeyFrameHeader *keyFrame1;
+ /**< Pointer to the first of the current pair of keyframes in
+ the associated \ref RtAnimAnimation */
+ RtAnimKeyFrameHeader *keyFrame2;
+ /**< Pointer to the second of the current pair of keyframes in
+ the associated \ref RtAnimAnimation */
+};
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimInterpolator
+ * Typedef for struct \ref RtAnimInterpolator
+ */
+typedef struct RtAnimInterpolator RtAnimInterpolator;
+
+/**
+ * \ingroup rtanim
+ * \ref RtAnimCallBack
+ * defines a callback function for use with the
+ * \ref RtAnimInterpolatorSetAnimCallBack and
+ * \ref RtAnimInterpolatorSetAnimLoopCallBack functions.
+ *
+ * \param animInstance
+ * A pointer to the \ref RtAnimInterpolator structure.
+ *
+ * \param data Void pointer for user-defined data.
+ * You can use this to pass your own data
+ * structure(s) to the callback function.
+ *
+ * \see RtAnimInterpolatorSetAnimCallBack
+ * \see RtAnimInterpolatorSetAnimLoopCallBack
+ *
+ */
+
+typedef RtAnimInterpolator * (*RtAnimCallBack)
+ (RtAnimInterpolator *animInstance,
+ void *data);
+
+/**
+ * \ingroup rtanim
+ * \struct RtAnimInterpolator
+ * holds the current state for a particular instance of an animation,
+ * corresponding to a specific point in time.
+ *
+ * The current interpolated keyframes are stored in an array after the
+ * end of this structure. For advanced use, these may be accessed
+ * using the macro rtANIMGETINTERPFRAME(interpolator, nodeIndex)
+ * which takes a pointer to the interpolator and the node index
+ * for the interpolated keyframe required.
+ *
+ * \see \ref RtAnimInterpolatorCreate
+ * \see \ref RtAnimInterpolatorDestroy
+ * \see \ref RtAnimInterpolatorSetCurrentAnim
+ * \see \ref RtAnimInterpolatorGetCurrentAnim
+ * \see \ref RtAnimInterpolatorSetKeyFrameCallBacks
+ * \see \ref RtAnimInterpolatorSetAnimLoopCallBack
+ * \see \ref RtAnimInterpolatorSetAnimCallBack
+ * \see \ref RtAnimInterpolatorCopy
+ * \see \ref RtAnimInterpolatorSubAnimTime
+ * \see \ref RtAnimInterpolatorAddAnimTime
+ * \see \ref RtAnimInterpolatorSetCurrentTime
+ * \see \ref RtAnimCallBack
+ */
+struct RtAnimInterpolator
+{
+ RtAnimAnimation *pCurrentAnim;
+ /**< Current \ref RtAnimAnimation applied */
+ RwReal currentTime;
+ /**< Current animation time */
+ void *pNextFrame;
+ /**< Next animation keyframe to be played */
+ RtAnimCallBack pAnimCallBack;
+ /**< Animation callback function pointer */
+ void *pAnimCallBackData;
+ /**< Animation callback function user data */
+ RwReal animCallBackTime;
+ /**< Trigger time for callback function */
+ RtAnimCallBack pAnimLoopCallBack;
+ /**< Animation loop callback function pointer */
+ void *pAnimLoopCallBackData;
+ /**< Animation loop callback function data */
+ RwInt32 maxKeyFrameSize;
+ /**< Maximum size of keyframes usable on
+ * this animation (set at creation time) */
+ RwInt32 currentKeyFrameSize;
+ /**< Size of keyframes in the current
+ * animation */
+ RwInt32 numNodes;
+ /**< Number of nodes driven by the animation */
+ RwBool isSubInterpolator;
+ /**< Internal use */
+ RwInt32 offsetInParent;
+ /**< Internal use */
+ RtAnimInterpolator *parentAnimation;
+ /**< Internal use */
+
+ RtAnimKeyFrameApplyCallBack keyFrameApplyCB;
+ /**< Internal use */
+ RtAnimKeyFrameBlendCallBack keyFrameBlendCB;
+ /**< Internal use */
+ RtAnimKeyFrameInterpolateCallBack keyFrameInterpolateCB;
+ /**< Internal use */
+ RtAnimKeyFrameAddCallBack keyFrameAddCB;
+ /**< Internal use */
+};
+
+/* Access to array of interpolated frames occupying a block of memory
+ * after the end of the RtAnimInterpolator structure.
+ */
+#define rtANIMGETINTERPFRAME( anim, nodeIndex ) \
+ ( (void *)( ( (RwUInt8 *)&(anim[1]) + \
+ ((nodeIndex) * \
+ anim->currentKeyFrameSize) ) ) )
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+/* Engine functions */
+extern void
+RtAnimAnimationFreeListCreateParams( RwInt32 blockSize, RwInt32 numBlocksToPrealloc );
+
+extern RwBool
+RtAnimInitialize(void);
+
+extern RwBool
+RtAnimRegisterInterpolationScheme(RtAnimInterpolatorInfo *interpolatorInfo);
+
+extern RtAnimInterpolatorInfo *
+RtAnimGetInterpolatorInfo(RwInt32 typeID);
+
+/* RtAnimAnimation */
+extern RtAnimAnimation *
+RtAnimAnimationCreate(RwInt32 typeID,
+ RwInt32 numFrames,
+ RwInt32 flags,
+ RwReal duration);
+
+extern RtAnimAnimation *
+RtAnimAnimationDestroy(RtAnimAnimation *animation);
+
+extern RtAnimAnimation *
+RtAnimAnimationRead(const RwChar * filename);
+
+extern RwBool
+RtAnimAnimationWrite(RtAnimAnimation *animation,
+ const RwChar * filename);
+
+extern RtAnimAnimation *
+RtAnimAnimationStreamRead(RwStream *stream);
+
+extern RwBool
+RtAnimAnimationStreamWrite(RtAnimAnimation *animation,
+ RwStream *stream);
+
+extern RwInt32
+RtAnimAnimationStreamGetSize(RtAnimAnimation *animation);
+
+extern RwUInt32
+RtAnimAnimationGetNumNodes(RtAnimAnimation *animation);
+
+#ifdef RWDEBUG
+
+extern RwInt32
+RtAnimAnimationGetTypeID(RtAnimAnimation *animation);
+
+#else /* RWDEBUG */
+
+#define RtAnimAnimationGetTypeID(animation) \
+ (animation->interpInfo->typeID)
+
+#endif /* RWDEBUG */
+
+/* RtAnimInterpolator */
+extern RtAnimInterpolator *
+RtAnimInterpolatorCreate(RwInt32 numNodes,
+ RwInt32 maxKeyFrameSize);
+
+extern void
+RtAnimInterpolatorDestroy(RtAnimInterpolator *anim);
+
+extern RwBool
+RtAnimInterpolatorSetCurrentAnim(RtAnimInterpolator *animI,
+ RtAnimAnimation *anim);
+
+
+#ifdef RWDEBUG
+
+extern RtAnimAnimation *
+RtAnimInterpolatorGetCurrentAnim(RtAnimInterpolator *animI);
+
+#else /* RWDEBUG */
+
+#define RtAnimInterpolatorGetCurrentAnim(animI) \
+ (animI->pCurrentAnim)
+
+#endif /* RWDEBUG */
+
+
+extern RwBool
+RtAnimInterpolatorSetKeyFrameCallBacks(RtAnimInterpolator *anim,
+ RwInt32 keyFrameTypeID);
+
+
+extern void
+RtAnimInterpolatorSetAnimLoopCallBack(RtAnimInterpolator *anim,
+ RtAnimCallBack callBack,
+ void *data );
+
+extern void
+RtAnimInterpolatorSetAnimCallBack(RtAnimInterpolator *anim,
+ RtAnimCallBack callBack,
+ RwReal time,
+ void *data );
+
+extern RwBool
+RtAnimInterpolatorCopy(RtAnimInterpolator *outAnim,
+ RtAnimInterpolator *inAnim);
+
+extern RwBool
+RtAnimInterpolatorSubAnimTime(RtAnimInterpolator *anim,
+ RwReal time);
+
+extern RwBool
+RtAnimInterpolatorAddAnimTime(RtAnimInterpolator *anim,
+ RwReal time);
+
+extern RwBool
+RtAnimInterpolatorSetCurrentTime(RtAnimInterpolator *anim,
+ RwReal time);
+
+extern RwBool
+RtAnimAnimationMakeDelta(RtAnimAnimation *animation,
+ RwInt32 numNodes,
+ RwReal time);
+
+
+extern RwBool
+RtAnimInterpolatorBlend(RtAnimInterpolator *outAnim,
+ RtAnimInterpolator *inAnim1,
+ RtAnimInterpolator *inAnim2,
+ RwReal alpha);
+
+extern RwBool
+RtAnimInterpolatorAddTogether(RtAnimInterpolator *outAnim,
+ RtAnimInterpolator *inAnim1,
+ RtAnimInterpolator *inAnim2);
+
+#define RtAnimKeyFrameApplyMacro(animation, out, in) \
+MACRO_START \
+{ \
+ (anim)->keyFrameApplyCB((out), (in1), (in2), (time)); \
+} \
+MACRO_STOP
+
+
+#define RtAnimKeyFrameInterpolateMacro(anim, out, in1, in2, time) \
+MACRO_START \
+{ \
+ (anim)->keyFrameInterpolateCB((out), (in1), (in2), (time)); \
+} \
+MACRO_STOP
+
+#define RtAnimKeyFrameBlendMacro(anim, out, in1, in2, fAlpha) \
+MACRO_START \
+{ \
+ (anim)->keyFrameBlendCB((out), (in1), (in2), (fAlpha)); \
+} \
+MACRO_STOP
+
+#define RtAnimKeyFrameAddTogetherMacro(anim, out, in1, in2) \
+MACRO_START \
+{ \
+ (anim)->keyFrameAddCB((out), (in1), (in2)); \
+} \
+MACRO_STOP
+
+#ifdef RWDEBUG
+extern void
+RtAnimKeyFrameApply(RtAnimInterpolator *animation,
+ void *result, void *iFrame);
+
+extern void
+RtAnimKeyFrameInterpolate(RtAnimInterpolator *animation,
+ void *out, void *in1,
+ void *in2, RwReal time);
+
+extern void
+RtAnimKeyFrameBlend(RtAnimInterpolator *animation,
+ void *out,
+ void *in1,
+ void *in2,
+ RwReal alpha);
+
+extern void
+RtAnimKeyFrameAddTogether(RtAnimInterpolator *animation,
+ void *out, void *in1, void *in2);
+
+#else /* RWDEBUG */
+#define RtAnimKeyFrameApply(animation, out, in) \
+ RtAnimKeyFrameApplyMacro(animation, out, in)
+
+#define RtAnimKeyFrameInterpolate(animation, out, in1, in2, time) \
+ RtAnimKeyFrameInterpolateMacro(animation, out, in1, in2, time)
+
+#define RtAnimKeyFrameBlend(animation, out, in1, in2, alpha) \
+ RtAnimKeyFrameBlendMacro(animation, out, in1, in2, alpha)
+
+#define RtAnimKeyFrameAddTogether(animation, out, in1, in2) \
+ RtAnimKeyFrameAddTogetherMacro(animation, out, in1, in2)
+#endif /* RWDEBUG */
+
+extern RtAnimInterpolator *
+RtAnimInterpolatorCreateSubInterpolator(
+ RtAnimInterpolator *parentAnim,
+ RwInt32 startNode,
+ RwInt32 numNodes,
+ RwInt32 maxKeyFrameSize);
+
+extern RwBool
+RtAnimInterpolatorBlendSubInterpolator(RtAnimInterpolator *outAnim,
+ RtAnimInterpolator *inAnim1,
+ RtAnimInterpolator *inAnim2,
+ RwReal alpha);
+
+extern RwBool
+RtAnimInterpolatorAddSubInterpolator(RtAnimInterpolator *outAnim,
+ RtAnimInterpolator *mainAnim,
+ RtAnimInterpolator *subAnim);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* RTANIM_H */
diff --git a/sdk/rwsdk/include/d3d8/rtanim.rpe b/sdk/rwsdk/include/d3d8/rtanim.rpe
new file mode 100644
index 00000000..ae8fcf33
--- /dev/null
+++ b/sdk/rwsdk/include/d3d8/rtanim.rpe
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+enum e_rwdb_CriterionAnim
+{
+
+
+E_RT_ANIM_INTERP_IDINUSE,
+
+E_RT_ANIM_INTERP_BLOCKFULL,
+
+E_RT_ANIM_INTERP_IDUNKNOWN,
+
+ e_rwdb_CriterionAnimLAST = RWFORCEENUMSIZEINT
+};
+
+typedef enum e_rwdb_CriterionAnim e_rwdb_CriterionAnim;
+
+
diff --git a/rwsdk/include/d3d8/rtbary.h b/sdk/rwsdk/include/d3d8/rtbary.h
index 2531914d..2531914d 100644
--- a/rwsdk/include/d3d8/rtbary.h
+++ b/sdk/rwsdk/include/d3d8/rtbary.h
diff --git a/rwsdk/include/d3d8/rtbary.rpe b/sdk/rwsdk/include/d3d8/rtbary.rpe
index 0fec6a77..0fec6a77 100644
--- a/rwsdk/include/d3d8/rtbary.rpe
+++ b/sdk/rwsdk/include/d3d8/rtbary.rpe
diff --git a/rwsdk/include/d3d8/rtbezpat.h b/sdk/rwsdk/include/d3d8/rtbezpat.h
index f25f5ce9..f25f5ce9 100644
--- a/rwsdk/include/d3d8/rtbezpat.h
+++ b/sdk/rwsdk/include/d3d8/rtbezpat.h
diff --git a/rwsdk/include/d3d8/rtbezpat.rpe b/sdk/rwsdk/include/d3d8/rtbezpat.rpe
index 0f6dc700..0f6dc700 100644
--- a/rwsdk/include/d3d8/rtbezpat.rpe
+++ b/sdk/rwsdk/include/d3d8/rtbezpat.rpe
diff --git a/rwsdk/include/d3d8/rtbmp.h b/sdk/rwsdk/include/d3d8/rtbmp.h
index c3bb5c95..c3bb5c95 100644
--- a/rwsdk/include/d3d8/rtbmp.h
+++ b/sdk/rwsdk/include/d3d8/rtbmp.h
diff --git a/rwsdk/include/d3d8/rtbmp.rpe b/sdk/rwsdk/include/d3d8/rtbmp.rpe
index 37c546f9..37c546f9 100644
--- a/rwsdk/include/d3d8/rtbmp.rpe
+++ b/sdk/rwsdk/include/d3d8/rtbmp.rpe
diff --git a/rwsdk/include/d3d8/rtcharse.h b/sdk/rwsdk/include/d3d8/rtcharse.h
index 6c7a3902..6c7a3902 100644
--- a/rwsdk/include/d3d8/rtcharse.h
+++ b/sdk/rwsdk/include/d3d8/rtcharse.h
diff --git a/rwsdk/include/d3d8/rtcharse.rpe b/sdk/rwsdk/include/d3d8/rtcharse.rpe
index 30c5ff4d..30c5ff4d 100644
--- a/rwsdk/include/d3d8/rtcharse.rpe
+++ b/sdk/rwsdk/include/d3d8/rtcharse.rpe
diff --git a/sdk/rwsdk/include/d3d8/rtgncpip.h b/sdk/rwsdk/include/d3d8/rtgncpip.h
new file mode 100644
index 00000000..b18f2bb7
--- /dev/null
+++ b/sdk/rwsdk/include/d3d8/rtgncpip.h
@@ -0,0 +1,256 @@
+/* *INDENT-OFF* */
+
+/* RWPUBLIC */
+
+/****************************************************************************
+ *
+ * File: rwg/rwsdk/tool/gencpipe/rtgncpip.h
+ *
+ * Copyright (C) 2002 Criterion Technologies.
+ *
+ * Purpose: Toolkit containing generic C rendering pipeline nodes.
+ *
+ ****************************************************************************/
+
+#if (!defined(_RTGNCPIP_H))
+#define _RTGNCPIP_H
+
+/*===========================================================================*
+ *--- Include files ---------------------------------------------------------*
+ *===========================================================================*/
+
+#include "rwcore.h"
+#include "rpworld.h"
+
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+/****************************************************************************
+ global types
+ */
+
+typedef RpLight *RxLight;
+
+
+/* RGBA Interpolation node structures */
+#if (!defined(DOXYGEN))
+struct NodeRGBAInterpData
+{
+ RwBool rgbaInterpOn;
+ RxRenderStateVector state;
+};
+#endif /* (!defined(DOXYGEN)) */
+
+typedef struct NodeRGBAInterpData NodeRGBAInterpData;
+
+/* UV Interpolation node structures */
+typedef struct RxNodeUVInterpSettings RxNodeUVInterpSettings;
+
+/**
+ * \ingroup rtgencpipe
+ * \struct RxNodeUVInterpSettings
+ *
+ * TODO
+ */
+struct RxNodeUVInterpSettings
+{
+ RwBool uvInterpOn; /**< TODO */
+ RxRenderStateVector state; /**< TODO */
+};
+
+/* Cloning node structures */
+typedef struct RxPacketCacheCluster RxPacketCacheCluster;
+
+/**
+ * \ingroup rtgencpipe
+ * \struct RxPacketCacheCluster
+ * structure containing a cache of an \ref RxCluster's
+ * within an \ref RxPacketCache
+ */
+struct RxPacketCacheCluster
+{
+ RwUInt32 slot; /**< A \ref RwUInt32 index into the \ref RxPacketCache's
+ * array of RxPacketCacheCluster's */
+ RwUInt16 flags; /**< A cache of the original cluster's flags */
+ RwUInt16 stride; /**< A cache of the original cluster's stride */
+ void *data; /**< A cache of the original cluster's data */
+ RwUInt32 numAlloced; /**< A cache of the original cluster's numAlloced */
+ RwUInt32 numUsed; /**< A cache of the original cluster's numUsed */
+ RxPipelineCluster *clusterRef; /**< A cache of the original cluster's \ref RxPipelineCluster */
+};
+typedef struct RxPacketCache RxPacketCache;
+
+/**
+ * \ingroup rtgencpipe
+ * \struct RxPacketCache
+ * structure containing a cache of a \ref RxPacket */
+struct RxPacketCache
+{
+ RwUInt16 packetFlags; /**< A cache of the original packet's flags */
+ RwUInt16 pad[1]; /**< Alignment padding */
+ RwUInt32 numClusters; /**< The number of present clusters in the
+ * original packet when it was cloned */
+ RwBool lastCloneDone;/**< Once the cache has been cloned by \ref RxPacketCacheClone
+ * with (lastClone == TRUE), it should not be used again! */
+ RwUInt32 pad2[1]; /**< Alignment padding */
+ RxPacketCacheCluster clusters[1]; /**< An array of \ref RxPacketCacheCluster's,
+ * extending beyond 1 element */
+};
+
+
+typedef struct RxNodeCloneInitData RxNodeCloneInitData;
+/**
+ * \ingroup rtgencpipe
+ * \struct RxNodeCloneInitData
+ * structure with which to initialize
+ * clone a \ref RxNodeDefinition,
+ * through \ref RxNodeDefinitionCloneCreate and
+ * set up cloned \ref RxPipelineNode modes, through
+ * \ref RxPipelineNodeCloneDefineModes */
+struct RxNodeCloneInitData
+{
+ RwUInt32 numModes; /**< Specifies the number of modes in
+ which the node should operate */
+ RwUInt32 numOutputs; /**< Specifies the number of outputs of this
+ Clone node, which is also the maximum
+ number of outputs to which any one mode
+ may dispatch packets */
+ RwUInt32 *modeSizes; /**< Specifies the number of outputs to which
+ each mode dispatches packets */
+ RwUInt32 **modes; /**< An array of numModes pointers to arrays
+ (of length numOutputs) specifying the
+ outputs, in order, to which each mode
+ should dispatch packets (output zero is
+ the first output) */
+};
+
+/**
+ * \ingroup rtgencpipe
+ * \struct RxNodeCloneData
+ * structure which is the private
+ * data of Clone nodes \ref RxPipelineNode */
+typedef struct RxNodeCloneData RxNodeCloneData;
+struct RxNodeCloneData
+{
+ RwBool optimized; /**< \ref RwBool specifying whether \ref RxPipelineNodeCloneOptimize
+ * has been run on this \ref RxPipelineNode yet */
+ RwUInt32 currentMode; /**< \ref RwUInt32 The current mode of operation */
+ RxNodeCloneInitData *data;/**< A pointer to \ref RxNodeCloneInitData data
+ * specifying the modes of operation */
+};
+
+/****************************************************************************
+ global prototypes
+ */
+
+extern RxClusterDefinition RxClLights; /* Uses the RxLight type (see above) */
+
+
+/*********************************************************************************
+
+ Generic Nodes
+
+ *******************************************************************************/
+
+extern RxNodeDefinition *RxNodeDefinitionGetAtomicInstance(void);
+extern RxNodeDefinition *RxNodeDefinitionGetClipLine(void);
+extern RxNodeDefinition *RxNodeDefinitionGetClipTriangle(void);
+extern RxNodeDefinition *RxNodeDefinitionGetWorldSectorEnumerateLights(void);
+extern RxNodeDefinition *RxNodeDefinitionGetCullTriangle(void);
+extern RxNodeDefinition *RxNodeDefinitionGetFastPathSplitter(void);
+extern RxNodeDefinition *RxNodeDefinitionGetImmInstance(void);
+extern RxNodeDefinition *RxNodeDefinitionGetImmMangleLineIndices(void);
+extern RxNodeDefinition *RxNodeDefinitionGetImmMangleTriangleIndices(void);
+extern RxNodeDefinition *RxNodeDefinitionGetImmRenderSetup(void);
+extern RxNodeDefinition *RxNodeDefinitionGetImmStash(void);
+extern RxNodeDefinition *RxNodeDefinitionGetLight(void);
+extern RxNodeDefinition *RxNodeDefinitionGetMaterialScatter(void);
+extern RxNodeDefinition *RxNodeDefinitionGetPostLight(void);
+extern RxNodeDefinition *RxNodeDefinitionGetPreLight(void);
+extern RxNodeDefinition *RxNodeDefinitionGetRGBAInterp(void);
+extern RxNodeDefinition *RxNodeDefinitionGetUVInterp(void);
+extern RxNodeDefinition *RxNodeDefinitionGetScatter(void);
+extern RxNodeDefinition *RxNodeDefinitionGetSubmitLine(void);
+extern RxNodeDefinition *RxNodeDefinitionGetSubmitTriangle(void);
+extern RxNodeDefinition *RxNodeDefinitionGetTransform(void);
+extern RxNodeDefinition *RxNodeDefinitionGetAtomicEnumerateLights(void);
+extern RxNodeDefinition *RxNodeDefinitionGetWorldSectorInstance(void);
+extern RxNodeDefinition *RxNodeDefinitionCloneCreate(RxNodeCloneInitData *data);
+extern RwBool RxPipelineNodeCloneDefineModes(
+ RxPipeline *pipeline,
+ RxPipelineNode *node,
+ RxNodeCloneInitData *data);
+extern RwBool RxNodeDefinitionCloneDestroy(RxNodeDefinition *def);
+extern RwBool RxPipelineNodeCloneOptimize(RxPipeline *pipeline,
+ RxPipelineNode *node);
+
+
+/*********************************************************************************
+
+ Generic Core Pipes
+
+ *******************************************************************************/
+
+
+extern RwBool RtGenCPipeCreateGenericIm3DTransformPipeline(void);
+extern void RtGenCPipeDestroyGenericIm3DTransformPipeline(void);
+extern RwBool RtGenCPipeCreateGenericIm3DRenderPipelines(void);
+extern void RtGenCPipeDestroyGenericIm3DRenderPipelines(void);
+
+extern RxPipeline *RwIm3DGetGenericTransformPipeline(void);
+extern RxPipeline *RwIm3DGetGenericRenderPipeline(RwPrimitiveType primType);
+
+
+/*********************************************************************************
+
+ Generic World Pipes
+
+ *******************************************************************************/
+
+extern RwBool RtGenCPipeCreateGenericWorldPipelines(void);
+extern void RtGenCPipeDestroyGenericWorldPipelines(void);
+
+#define RpWorldGetGenericSectorPipelineMacro() \
+ (RXPIPELINEGLOBAL(genericWorldSectorPipeline))
+
+#define RpAtomicGetGenericPipelineMacro() \
+ (RXPIPELINEGLOBAL(genericAtomicPipeline))
+
+#define RpMaterialGetGenericPipelineMacro() \
+ (RXPIPELINEGLOBAL(genericMaterialPipeline))
+
+
+#if !(defined(RWDEBUG) || defined(RWSUPPRESSINLINE))
+
+#define RpWorldGetGenericSectorPipeline RpWorldGetGenericSectorPipelineMacro
+#define RpAtomicGetGenericPipeline RpAtomicGetGenericPipelineMacro
+#define RpMaterialGetGenericPipeline RpMaterialGetGenericPipelineMacro
+
+#endif /* !(defined(RWDEBUG) || defined(RWSUPPRESSINLINE)) */
+
+
+#if (defined(RWDEBUG) || defined(RWSUPPRESSINLINE))
+
+extern RxPipeline *RpWorldGetGenericSectorPipeline(void);
+
+extern RxPipeline *RpAtomicGetGenericPipeline(void);
+
+extern RxPipeline *RpMaterialGetGenericPipeline(void);
+
+#endif /* (defined(RWDEBUG) || defined(RWSUPPRESSINLINE)) */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /* (!defined(_RTGNCPIP_H)) */
+
+/* RWPUBLICEND */
+
+/* *INDENT-ON* */
diff --git a/sdk/rwsdk/include/d3d8/rtgncpip.rpe b/sdk/rwsdk/include/d3d8/rtgncpip.rpe
new file mode 100644
index 00000000..4f676526
--- /dev/null
+++ b/sdk/rwsdk/include/d3d8/rtgncpip.rpe
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+enum e_rwdb_CriterionGENCPIPETOOL
+{
+
+
+
+ e_rwdb_CriterionGENCPIPETOOLLAST = RWFORCEENUMSIZEINT
+};
+
+typedef enum e_rwdb_CriterionGENCPIPETOOL e_rwdb_CriterionGENCPIPETOOL;
+
+
diff --git a/rwsdk/include/d3d8/rtimport.h b/sdk/rwsdk/include/d3d8/rtimport.h
index 2cc6383b..2cc6383b 100644
--- a/rwsdk/include/d3d8/rtimport.h
+++ b/sdk/rwsdk/include/d3d8/rtimport.h
diff --git a/rwsdk/include/d3d8/rtimport.rpe b/sdk/rwsdk/include/d3d8/rtimport.rpe
index ff8d3d5c..ff8d3d5c 100644
--- a/rwsdk/include/d3d8/rtimport.rpe
+++ b/sdk/rwsdk/include/d3d8/rtimport.rpe
diff --git a/rwsdk/include/d3d8/rtintsec.h b/sdk/rwsdk/include/d3d8/rtintsec.h
index a2e4c3d6..a2e4c3d6 100644
--- a/rwsdk/include/d3d8/rtintsec.h
+++ b/sdk/rwsdk/include/d3d8/rtintsec.h
diff --git a/rwsdk/include/d3d8/rtintsec.rpe b/sdk/rwsdk/include/d3d8/rtintsec.rpe
index 3c7f7bf3..3c7f7bf3 100644
--- a/rwsdk/include/d3d8/rtintsec.rpe
+++ b/sdk/rwsdk/include/d3d8/rtintsec.rpe
diff --git a/rwsdk/include/d3d8/rtltmap.h b/sdk/rwsdk/include/d3d8/rtltmap.h
index 8ee15a43..8ee15a43 100644
--- a/rwsdk/include/d3d8/rtltmap.h
+++ b/sdk/rwsdk/include/d3d8/rtltmap.h
diff --git a/rwsdk/include/d3d8/rtltmap.rpe b/sdk/rwsdk/include/d3d8/rtltmap.rpe
index fb171c51..fb171c51 100644
--- a/rwsdk/include/d3d8/rtltmap.rpe
+++ b/sdk/rwsdk/include/d3d8/rtltmap.rpe
diff --git a/rwsdk/include/d3d8/rtmipk.h b/sdk/rwsdk/include/d3d8/rtmipk.h
index 6c777b41..6c777b41 100644
--- a/rwsdk/include/d3d8/rtmipk.h
+++ b/sdk/rwsdk/include/d3d8/rtmipk.h
diff --git a/rwsdk/include/d3d8/rtmipk.rpe b/sdk/rwsdk/include/d3d8/rtmipk.rpe
index 04500e1d..04500e1d 100644
--- a/rwsdk/include/d3d8/rtmipk.rpe
+++ b/sdk/rwsdk/include/d3d8/rtmipk.rpe
diff --git a/rwsdk/include/d3d8/rtpick.h b/sdk/rwsdk/include/d3d8/rtpick.h
index 62f564a3..62f564a3 100644
--- a/rwsdk/include/d3d8/rtpick.h
+++ b/sdk/rwsdk/include/d3d8/rtpick.h
diff --git a/rwsdk/include/d3d8/rtpick.rpe b/sdk/rwsdk/include/d3d8/rtpick.rpe
index 779e2f9a..779e2f9a 100644
--- a/rwsdk/include/d3d8/rtpick.rpe
+++ b/sdk/rwsdk/include/d3d8/rtpick.rpe
diff --git a/rwsdk/include/d3d8/rtpitexd.h b/sdk/rwsdk/include/d3d8/rtpitexd.h
index 602c608a..602c608a 100644
--- a/rwsdk/include/d3d8/rtpitexd.h
+++ b/sdk/rwsdk/include/d3d8/rtpitexd.h
diff --git a/rwsdk/include/d3d8/rtpitexd.rpe b/sdk/rwsdk/include/d3d8/rtpitexd.rpe
index 290ac864..290ac864 100644
--- a/rwsdk/include/d3d8/rtpitexd.rpe
+++ b/sdk/rwsdk/include/d3d8/rtpitexd.rpe
diff --git a/rwsdk/include/d3d8/rtpng.h b/sdk/rwsdk/include/d3d8/rtpng.h
index 4ba8cf0f..4ba8cf0f 100644
--- a/rwsdk/include/d3d8/rtpng.h
+++ b/sdk/rwsdk/include/d3d8/rtpng.h
diff --git a/rwsdk/include/d3d8/rtpng.rpe b/sdk/rwsdk/include/d3d8/rtpng.rpe
index e3f6f0d7..e3f6f0d7 100644
--- a/rwsdk/include/d3d8/rtpng.rpe
+++ b/sdk/rwsdk/include/d3d8/rtpng.rpe
diff --git a/rwsdk/include/d3d8/rtquat.h b/sdk/rwsdk/include/d3d8/rtquat.h
index a0a6e89d..a0a6e89d 100644
--- a/rwsdk/include/d3d8/rtquat.h
+++ b/sdk/rwsdk/include/d3d8/rtquat.h
diff --git a/rwsdk/include/d3d8/rtquat.rpe b/sdk/rwsdk/include/d3d8/rtquat.rpe
index b239aba0..b239aba0 100644
--- a/rwsdk/include/d3d8/rtquat.rpe
+++ b/sdk/rwsdk/include/d3d8/rtquat.rpe
diff --git a/rwsdk/include/d3d8/rtras.h b/sdk/rwsdk/include/d3d8/rtras.h
index 957e21e6..957e21e6 100644
--- a/rwsdk/include/d3d8/rtras.h
+++ b/sdk/rwsdk/include/d3d8/rtras.h
diff --git a/rwsdk/include/d3d8/rtras.rpe b/sdk/rwsdk/include/d3d8/rtras.rpe
index a242ef49..a242ef49 100644
--- a/rwsdk/include/d3d8/rtras.rpe
+++ b/sdk/rwsdk/include/d3d8/rtras.rpe
diff --git a/rwsdk/include/d3d8/rtray.h b/sdk/rwsdk/include/d3d8/rtray.h
index b2f3d4bc..b2f3d4bc 100644
--- a/rwsdk/include/d3d8/rtray.h
+++ b/sdk/rwsdk/include/d3d8/rtray.h
diff --git a/rwsdk/include/d3d8/rtray.rpe b/sdk/rwsdk/include/d3d8/rtray.rpe
index c1ff4458..c1ff4458 100644
--- a/rwsdk/include/d3d8/rtray.rpe
+++ b/sdk/rwsdk/include/d3d8/rtray.rpe
diff --git a/sdk/rwsdk/include/d3d8/rtskinsp.h b/sdk/rwsdk/include/d3d8/rtskinsp.h
new file mode 100644
index 00000000..7e40c13f
--- /dev/null
+++ b/sdk/rwsdk/include/d3d8/rtskinsp.h
@@ -0,0 +1,57 @@
+/***************************************************************************
+ * *
+ * Module : *
+ * *
+ * Purpose : *
+ * *
+ **************************************************************************/
+
+/* RWPUBLIC */
+
+#ifndef RTSKINSP_H
+#define RTSKINSP_H
+
+/**
+ * \defgroup rtskinsplit RtSkinSplit
+ * \ingroup skinning
+ *
+ * Skin Splitting Toolkit for RenderWare Graphics.
+ */
+
+/****************************************************************************
+ Includes
+ */
+#include <rwcore.h>
+#include <rpworld.h>
+
+/****************************************************************************
+ Defines
+ */
+
+/****************************************************************************
+ Global Types
+ */
+
+/****************************************************************************
+ Global variables (across program)
+ */
+
+/****************************************************************************
+ Function prototypes
+ */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cpluscplus */
+
+extern RpAtomic *
+RtSkinSplitAtomicSplitGeometry( RpAtomic *atomic, RwUInt32 boneLimit );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* RTSKINSP_H */
+
+/* RWPUBLICEND */
diff --git a/sdk/rwsdk/include/d3d8/rtskinsp.rpe b/sdk/rwsdk/include/d3d8/rtskinsp.rpe
new file mode 100644
index 00000000..f86623b4
--- /dev/null
+++ b/sdk/rwsdk/include/d3d8/rtskinsp.rpe
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+enum e_rwdb_CriterionSkinSplit
+{
+
+
+
+ e_rwdb_CriterionSkinSplitLAST = RWFORCEENUMSIZEINT
+};
+
+typedef enum e_rwdb_CriterionSkinSplit e_rwdb_CriterionSkinSplit;
+
+
diff --git a/rwsdk/include/d3d8/rtslerp.h b/sdk/rwsdk/include/d3d8/rtslerp.h
index 4262b894..4262b894 100644
--- a/rwsdk/include/d3d8/rtslerp.h
+++ b/sdk/rwsdk/include/d3d8/rtslerp.h
diff --git a/rwsdk/include/d3d8/rtslerp.rpe b/sdk/rwsdk/include/d3d8/rtslerp.rpe
index 64bd7571..64bd7571 100644
--- a/rwsdk/include/d3d8/rtslerp.rpe
+++ b/sdk/rwsdk/include/d3d8/rtslerp.rpe
diff --git a/rwsdk/include/d3d8/rtsplpvs.h b/sdk/rwsdk/include/d3d8/rtsplpvs.h
index 419717a1..419717a1 100644
--- a/rwsdk/include/d3d8/rtsplpvs.h
+++ b/sdk/rwsdk/include/d3d8/rtsplpvs.h
diff --git a/rwsdk/include/d3d8/rtsplpvs.rpe b/sdk/rwsdk/include/d3d8/rtsplpvs.rpe
index 9736cbbc..9736cbbc 100644
--- a/rwsdk/include/d3d8/rtsplpvs.rpe
+++ b/sdk/rwsdk/include/d3d8/rtsplpvs.rpe
diff --git a/rwsdk/include/d3d8/rttiff.h b/sdk/rwsdk/include/d3d8/rttiff.h
index b5d0ec00..b5d0ec00 100644
--- a/rwsdk/include/d3d8/rttiff.h
+++ b/sdk/rwsdk/include/d3d8/rttiff.h
diff --git a/rwsdk/include/d3d8/rttiff.rpe b/sdk/rwsdk/include/d3d8/rttiff.rpe
index 260b2329..260b2329 100644
--- a/rwsdk/include/d3d8/rttiff.rpe
+++ b/sdk/rwsdk/include/d3d8/rttiff.rpe
diff --git a/rwsdk/include/d3d8/rttilerd.h b/sdk/rwsdk/include/d3d8/rttilerd.h
index 7cb8f887..7cb8f887 100644
--- a/rwsdk/include/d3d8/rttilerd.h
+++ b/sdk/rwsdk/include/d3d8/rttilerd.h
diff --git a/rwsdk/include/d3d8/rttilerd.rpe b/sdk/rwsdk/include/d3d8/rttilerd.rpe
index 15c929f9..15c929f9 100644
--- a/rwsdk/include/d3d8/rttilerd.rpe
+++ b/sdk/rwsdk/include/d3d8/rttilerd.rpe
diff --git a/rwsdk/include/d3d8/rttoc.h b/sdk/rwsdk/include/d3d8/rttoc.h
index 88926062..88926062 100644
--- a/rwsdk/include/d3d8/rttoc.h
+++ b/sdk/rwsdk/include/d3d8/rttoc.h
diff --git a/rwsdk/include/d3d8/rttoc.rpe b/sdk/rwsdk/include/d3d8/rttoc.rpe
index 706372f2..706372f2 100644
--- a/rwsdk/include/d3d8/rttoc.rpe
+++ b/sdk/rwsdk/include/d3d8/rttoc.rpe
diff --git a/rwsdk/include/d3d8/rtvcat.h b/sdk/rwsdk/include/d3d8/rtvcat.h
index 474095e1..474095e1 100644
--- a/rwsdk/include/d3d8/rtvcat.h
+++ b/sdk/rwsdk/include/d3d8/rtvcat.h
diff --git a/rwsdk/include/d3d8/rtvcat.rpe b/sdk/rwsdk/include/d3d8/rtvcat.rpe
index ef5e286e..ef5e286e 100644
--- a/rwsdk/include/d3d8/rtvcat.rpe
+++ b/sdk/rwsdk/include/d3d8/rtvcat.rpe
diff --git a/rwsdk/include/d3d8/rtworld.h b/sdk/rwsdk/include/d3d8/rtworld.h
index 727d8122..727d8122 100644
--- a/rwsdk/include/d3d8/rtworld.h
+++ b/sdk/rwsdk/include/d3d8/rtworld.h
diff --git a/rwsdk/include/d3d8/rtworld.rpe b/sdk/rwsdk/include/d3d8/rtworld.rpe
index 83449720..83449720 100644
--- a/rwsdk/include/d3d8/rtworld.rpe
+++ b/sdk/rwsdk/include/d3d8/rtworld.rpe
diff --git a/rwsdk/include/d3d8/rwcore.h b/sdk/rwsdk/include/d3d8/rwcore.h
index 583de35f..583de35f 100644
--- a/rwsdk/include/d3d8/rwcore.h
+++ b/sdk/rwsdk/include/d3d8/rwcore.h
diff --git a/rwsdk/include/d3d8/rwplcore.h b/sdk/rwsdk/include/d3d8/rwplcore.h
index 3740ae60..3740ae60 100644
--- a/rwsdk/include/d3d8/rwplcore.h
+++ b/sdk/rwsdk/include/d3d8/rwplcore.h