Some quick questions on structs

WindexIsBack

New Member
Reaction score
100
1: How are structs created?

2: How are structs edited

3: How are individual values of a struct returned?

+rep for helping
(I made my own topic for this because chances are I will have further questions)
 

WindexIsBack

New Member
Reaction score
100
I have already examined the tutorial (and check to make sure the site is working and such)

But to further extend,
-How are structs created, using multiple types of variables ranging from booleans to reals
-How are structs edited, instead of being totally rewritten?
-How are invidual values of a struct returned?
 
Reaction score
341
Struct Creation :

JASS:

struct name

endstruct


And being able to use that struct in a function...

JASS:

function asdjaksj takes nothing returns nothing
    local name x = name.create()
endfunction


How are structs edited

Like normal variables. Set x.var = value (x being the struct member)

How are individual values of a struct returned?

Not sure what your asking... but i'm guessing you mean returning a struct.

JASS:

struct name

static method create takes nothing returns name
    local name a = name.allocate()

    return name
endmethod

endstruct


How are structs created, using multiple types of variables ranging from booleans to reals

JASS:

struct name

    integer i
    real r
    boolean b

endstruct

function test takes nothing returns nothing
    local name n = name.create()
    set n.i = 5
    set n.r = 6.00
    set n.b = true
endfunction


How are structs edited, instead of being totally rewritten?

Struct attachment systems.

How are invidual values of a struct returned?

JASS:

struct name

    integer i
    real r
    boolean b

endstruct

function test takes nothing returns boolean
    local name n = name.create()
    set n.i = 5
    set n.r = 6.00
    set n.b = true
    return n.b
endfunction
 

WindexIsBack

New Member
Reaction score
100
Does it have to be 'name'?
Do you have to set all the variables used in the struct? Or were you just doing this further examplify that it was the same struct?

Either way, much thanks.

EDIT: If the struct were to be global, I would just namevar.varname = ? without having to set the name as it's been done before? (Just being cautious here)
 
Reaction score
341
Does it have to be 'name'?

No you can pick whatever name you want when making a struct, but when calling the struct you must use the picked name. so if your structs name is doggy you must do

JASS:
local doggy someletterorname = doggy.create()


Do you have to set all the variables used in the struct?

Nope.

Or were you just doing this further examplify that it was the same struct?

Yep.

Either way, much thanks.

Np.
 

Darius34

New Member
Reaction score
30
How are structs edited, instead of being totally rewritten?

Struct attachment systems.
To elaborate, .create() returns an instance of a struct. Structs that use .create() aren't static, therefore (methods/members can be static, however, but that's another topic); each instance of a struct you create has its own (initialized) members, in a way "attached" to that struct.

Recycling of unwanted structs is done via the .destroy() method. So, you can create new structs for usage, initialize them, etc. and attach them with attachment systems (or do anything). They aren't static in the sense that you don't have to "rewrite" them.

At least, I think that's what you're asking.
 

Viikuna

No Marlo no game.
Reaction score
265
JASS:
struct lol
    unit lolunit // These struct members are like global arrays in some ways
    integer lolinteger
ensdstruct


JASS:
local lol A=lol.create() // This returns you a lol variable, it is an integer
// think it as an array index. A.lolunit is like lolunit[A] or something
local lol B=lol.create() // now B is a new array index.
// everytime you call create, it just gives you a new index.
call B.destroy() // B index is now recycled.


EDIT:
JASS:
set A.lolunit=null // This means you are setting lolunit[A]=null
// I know it is not that simple really, but it is something close to this, right?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top