Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
OOP Question
Author Message
Capes
Journeyman
*

Posts: 57
Likes Given: 0
Likes Received: 4 in 4 posts
Joined: Mar 2018
Reputation: 0



Post: #1
OOP Question
I'm trying to define a base class (container) that defines events that spawn loot with-in that container.
The container has no appearance, only acts like a non-moveable & static container, but has custom event handlers.
Then I'm trying to define inherited classes of the base class to handle what the container looks like (the aesthetics).
The reasoning is to eliminate tons of repetitive code...
Example-
I define a base class like below;
/////////////////////////////////////////
//base class - respawning loot container
/////////////////////////////////////////

[ITEMDEF i_base_container_respawning_loot]
TYPE = t_container
ATTR = attr_move_never|attr_static
ON=@Create
//assign event handlers
EVENTS +e_event_handlers

I define a inherited class like below;
/////////////////////////////////////////
//Derived class - respawning loot container
/////////////////////////////////////////

//barrel
[ITEMDEF i_barrel_test]
ID=i_base_container_respawning_loot
DISPID=i_barrel
name = Barrel


The issue is - 1)it always comes out as a coin and 2)it never inherits it's behaviors (events do not fire) ..
What am I missing? I need the inherited object to keep all non-overridden properties & behaviors so all I have to do is define the appearance, weight etc...
Are there other properties to change the items appearance (cause DISPID doesn't seem to do a thing)?
And what does the TDATA 1/2/3 actually do?

Thanks in advance
Capes
(This post was last modified: 03-07-2018 08:04 AM by Capes.)
03-07-2018 08:03 AM
Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 246
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #2
RE: OOP Question
From what i know there are no classes and/or inheritance, each ITEMDEF block just refers to one of the item entry in the Art and Tiledata files, from the first it takes the appearance of the item while from the latter it takes the basic properties (name, weight, etc) and behaviour.

All of this depends from the ID value of the item, you got a gold coin because "i_base_container_respawning_loot" it's not a valid art/tiledata entry, so you must assign to your custom items a valid ID.
03-07-2018 09:42 AM
Find all posts by this user Like Post Quote this message in a reply
Capes
Journeyman
*

Posts: 57
Likes Given: 0
Likes Received: 4 in 4 posts
Joined: Mar 2018
Reputation: 0



Post: #3
RE: OOP Question
Thanks Darksun84!

How do I assign a valid art/tiledata entry to the [ITEMDEF i_barrel_test] ?
I thought the DISPID did this but does not.....
Do I have to assign it in the base class [ITEMDEF i_base_container_respawning_loot]?
And if so - how do I override it in the inherited class?

Thanks in advance
Capes
03-09-2018 07:30 AM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)