Subversion Repositories Kolibri OS

Rev

Rev 7271 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7204 leency 1
 
7271 leency 2
7204 leency 3
 
4
	dword stack[MAX_ACTIONS_COUNT];
5
	dword head;
6
	dword tail;
7
	dword currentIndex;
8
9
 
10
	bool isEmpty();
11
12
 
13
	void restoreState(dword index);
14
15
 
16
	void redoLastAction();
17
};
18
19
 
20
	dword i;
21
22
 
23
	currentIndex = -1;
24
25
 
7274 leency 26
		stack[i] = free(stack[i]);
27
		stack[i] = malloc(image.columns * image.rows * 4);
7253 leency 28
	}
7274 leency 29
7204 leency 30
 
31
}
32
33
 
34
	if (head == tail)
35
		return true;
36
	else
37
		return false;
38
}
39
40
 
41
	dword addr, offset;
42
	int r, c;
43
44
 
45
46
 
47
		tail = tail % MAX_ACTIONS_COUNT;
48
49
 
50
51
 
52
	{
53
		for (c = 0; c < image.columns; c++)
54
		{
55
			offset = calc(image.columns * r + c) * 4;
56
57
 
58
		}
59
	}
60
61
 
62
	tail = calc(tail + 1) % 10;
63
64
 
65
		head = calc(head + 1) % 10;
66
}
67
68
 
69
	dword addr, offset;
70
	int r, c;
71
72
 
73
74
 
75
	{
76
		for (c = 0; c < image.columns; c++)
77
		{
78
			offset = calc(image.columns * r + c) * 4;
79
			image.set_pixel(r, c, ESDWORD[addr + offset]);
80
		}
81
	}
82
}
83
84
 
85
	dword previousAction;
86
87
 
7253 leency 88
		// Если вышли за левую границу, перемещаемся в конец массива
89
		if (currentIndex == 0) {
90
			previousAction = MAX_ACTIONS_COUNT - 1;
91
		}
92
		else {
93
			previousAction = currentIndex - 1;
94
		}
95
7204 leency 96
 
7253 leency 97
			return;
98
		else {
99
			if (currentIndex != head) {
100
				restoreState(previousAction);
101
				DrawCanvas();
102
			}
103
104
 
105
				currentIndex = previousAction;
106
		}
7204 leency 107
	}
108
}
109
110
 
111
	dword nextAction = calc(currentIndex + 1);
112
113
 
7253 leency 114
		// Если вышли за левую границу, возвращаемся в начало
115
		if (nextAction >= MAX_ACTIONS_COUNT)
116
			nextAction = nextAction % MAX_ACTIONS_COUNT;
117
7204 leency 118
 
7253 leency 119
			return;
120
		else {
121
			if (nextAction != tail) {
122
				restoreState(nextAction);
123
				DrawCanvas();
124
			}
125
126
 
127
				currentIndex = nextAction;
128
		}
7204 leency 129
	}
130
}
131