um das mit den templates nochmal ein wenig zu vertiefen:
die klasse vector3d ist so implementiert, dass sie mit float double int und sonstwas rechnen kann.
die engine verwendet meines wissens nach aber nur vectoren die mit float arbeiten.
du kannst jetzt also entweder vector3d<float> schreiben oder vector3df (vector3df ist ein typedef auf vector3d<float>, das gleiche gilt für vector3di => vector3d<int>)
den datentyp musst du angeben weil der compiler sonst nicht weiß mit welchen datentypen er rechnen muss.
ich empfehle den einsatz von floats da wie gesagt irrlicht nur mit den dinger intern umgeht und 2. kannst du mit einem vector3di keine (bzw. nur schlecht) skalierungen angeben.
Was mir an deinem Code noch aufgefallen ist:
du verwendest einen zeiger auf einen vector. Das macht meines erachtens in diesem zusammenhang (also für eine variable für koordinaten) keinen sinn. Und ein vector3d ist nur 3*sizeof(typ) groß, also nicht die welt
und 2.:
c8 Name;
ein einzelner Buchstabe wird wohl kaum für einen Namen ausreichen

Entweder solltest du c8* Name verwenden oder stringc Name;
_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain