Jump to content


Help understanding codebase

programming systems design c++

28 replies to this topic

#26 Obsttorte


    Scripting guru, Mapper

  • Active Developer
  • PipPipPipPipPip
  • 5478 posts

Posted 28 February 2017 - 03:30 PM

Thank you, Obsttorte, but this doesn't address my question.

That wasn't my intention. I just posted it for reference in case it might address upcoming questions. :)

FM's: Builder Roads, Old Habits, Old Habits Rebuild
WIP's: Several. Although after playing Thief 4 I really wanna make a city mission.
Mapping and Scripting: Apples and Peaches
Sculptris Models and Tutorials: Obsttortes Models
My wiki articles: Obstipedia
Let's Map TDM YouTube playlist: ObstlerTube
Texture Blending in DR: DR ASE Blend Exporter

End of shameless self promotion.

#27 HMart


    Advanced Member

  • Member
  • PipPipPip
  • 628 posts

Posted 28 February 2017 - 08:57 PM


I made a copy of the player script to edit its logic and put it in the script folder of my mission files. It's included in the tdm_custom_scripts.script file that I used, which has been working with the other script objects that I've written.




That was a good suggestion. I tried it, but alas, that did not solve my problem.


My problem is that I similarly made a copy of the player entityDef file, and told it to use my custom player script object. However, when the map loads, it doesn't seem to recognize my script, and just prints an error to the console.


The error shows that the engine can't find your script, recheck the naming and path, in the ingame console you can use "path" to see what folders/pk4 the engine is looking into, you can also navigate up in the console (page up && page down keys) to the place where the engine printed the loading of the scripts and see if yours is refereed there, if not then is prof it is not being loaded.



edit: Hum on the console to see the printed script loading i think you need to use "testmap" instead of "map".   

Edited by HMart, 28 February 2017 - 09:11 PM.

#28 jaredmitchell



  • Member
  • PipPip
  • 35 posts

Posted 01 March 2017 - 12:07 PM

...well, this is embarrassing.


Turns out the issue was I forgot to give a new name for the #ifndef and #define preprocessor commands in my script. Whoops.


Everything works as expected now. Thank you all for being patient with me.

#29 jaredmitchell



  • Member
  • PipPip
  • 35 posts

Posted 03 March 2017 - 08:16 PM

Alright, once more:


I'm trying to figure out a way to pass a variable to another script object, but I can't seem to find a way to do that. Specifically, I need a way to communicate the position of the current entity the player has tied their tether arrow to, preferably to my player script object.


Using callFunction() on an entity doesn't allow me to pass any arguments to the function called (as far as I can tell), so I tried implementing some functions in a map script so that I could use callGlobalFunction(), which at least allows me to pass an entity. However, given that I have functions like this:

//functions in my map script. currentTiePos is a vector variable defined earlier
void setTiePos(entity tie)
    currentTiePos = tie.getWorldOrigin();
    sys.println("Global setTiePos");

vector getTiePos(entity something)
    sys.println("Global getTiePos"); 
    return currentTiePos;


I thought that this would be a functional workaround. While setTiePos() works as intended, whenever I try to call getTiePos() via callGlobalFunction() to assign a vector, the Dark Mod launcher flags this as an error. I think it's likely because a string is used to access a function in callGlobalFunction(), so the interpreter can't check that the corresponding function returns the proper data type.


So, does anyone know how I can either pass a value to another script object, or get a value from a global function? Thank you again for your help!

Edited by jaredmitchell, 03 March 2017 - 08:18 PM.

Reply to this topic


Also tagged with one or more of these keywords: programming, systems design, c++

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users