Casting Enum to string and int

I wanted to use an enum for making my code more verbose. So i can have an enum named States and use that for the index variable when grabbing elements from an array. Aswell as i wanted to print the enum out.

But in both cases i run into the issue that i cant cast an enum to int or string. And in both cases it doesnt accept an enum as a viable type when calling an element in the array or when using the Print() function

1 Like

I’m not sure this is implemented yet, in order to Print() anything, your variable type must be convertible to String by implementing the ToString() function like this : (example with a custom enum)

# Could probably put this at top level or in another utils/extensions file
ToString(State: zombie_state)<computes>:[]char =
    case(State):
        zombie_state.Idle => "Idle"
        zombie_state.Walk => "Walk"
        zombie_state.Run => "Run"
        zombie_state.PrimaryAttack => "PrimaryAttack"
        zombie_state.StrafeLeft => "StrafeLeft"
        zombie_state.StrafeRight => "StrafeRight"
        zombie_state.Backward => "Backward"
        zombie_state.Hit => "Hit"
        zombie_state.Dead => "Dead"
2 Likes

Okay that really sounds like a hassle :frowning:

I guess they could implement something in the future

Yer i was hoping for something like

State := enum{ Missing, Broken, Repaired }

With them each mapping to an int by default

Or you could do

State := enum{ Missing = “missing”, Broken = “broken”, Repaired = “repaired” }

1 Like