I have a quick question. Is it typically better to jump between functions or pass values from function to function? 

For example, in the game that I'm currently working on, with the struct `game_structure` as the struct containing all the data, would it be better to pass new game\_structures between functions, or to use functions more-or-less as loops? Currently, for example, I call the function `inventory(game_structure *gs)` which loops through the inventory commands. However, when it is finished, it starts the function `game_loop(game_structure *gs);` which goes back to the game. Would it be better if I had `inventory(game_structure *gs)` return a `game_structure` to be called upon somewhere else?

But even in other cases, what is more beneficial? Jumping between loops, or returning values?