aboutsummaryrefslogtreecommitdiff
path: root/go/activities/activity.go
blob: c082b8c6748e67d5709891dbc5fac6280d953573 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package activities

import (
	"github.com/hajimehoshi/ebiten/v2"
)

type ActivityStack struct {
	activityStack []ebiten.Game
}

var Activities ActivityStack

type Activity = ebiten.Game

func (s *ActivityStack) PushActivity(a Activity) {
	s.activityStack = append(s.activityStack, a)
}

func (s *ActivityStack) PopActivity() Activity {
	n := len(s.activityStack)
	a := s.activityStack[n-1]
	s.activityStack = s.activityStack[:n-1]
	return a
}

func (s *ActivityStack) Last() Activity {
	n := len(s.activityStack)
	return s.activityStack[n-1]
}

func PushActivity(a Activity) {
	Activities.PushActivity(a)
}

func PopActivity() Activity {
	return Activities.PopActivity()
}

func CurActivity() Activity {
	return Activities.Last()
}