@@ -7,42 +7,47 @@ TaskInsideUnit::TaskInsideUnit(std::string uuid, int wFrame, int rTime): parentU
77
88void TaskInsideUnit::UnitInit ()
99{
10+ if (!isInit) {
11+ isInit = true ;
12+ }
1013}
1114
1215void TaskInsideUnit::UnitWork ()
1316{
14- if (nowFrame > 0 ) {
15- nowFrame--;
16- }
17- else {
18- if (repeatTime > 0 ) {
19- if (!haveAddToQueue) {
20- auto iterBegin = renderObjectGroup.begin ();
21- auto iterEnd = renderObjectGroup.end ();
22- for (auto object = iterBegin; object != iterEnd; object++) {
23- RenderManager::getInstance ()->AddRenderObject (parentUuid, *object);
24- }
25- renderObjectGroup.clear ();
17+ if (isInit) {
18+ if (nowFrame > 0 ) {
19+ nowFrame--;
20+ }
21+ else {
22+ if (repeatTime > 0 ) {
23+ if (!haveAddToQueue) {
24+ auto iterBegin = renderObjectGroup.begin ();
25+ auto iterEnd = renderObjectGroup.end ();
26+ for (auto object = iterBegin; object != iterEnd; object++) {
27+ RenderManager::getInstance ()->AddRenderObject (parentUuid, *object);
28+ }
29+ renderObjectGroup.clear ();
2630
27- /* Refill render object*/
28- auto groupBegin = renderGroupManager.begin ();
29- if (groupBegin != renderGroupManager.end ()) {
30- std::list<RenderObject*> list = *groupBegin;
31- renderObjectGroup.assign (list.begin (), list.end ());
32- renderGroupManager.erase (groupBegin);
33- }
34- else {
35- haveAddToQueue = true ;
36- }
31+ /* Refill render object*/
32+ auto groupBegin = renderGroupManager.begin ();
33+ if (groupBegin != renderGroupManager.end ()) {
34+ std::list<RenderObject*> list = *groupBegin;
35+ renderObjectGroup.assign (list.begin (), list.end ());
36+ renderGroupManager.erase (groupBegin);
37+ }
38+ else {
39+ haveAddToQueue = true ;
40+ }
3741
38- repeatTime--;
39- nowFrame = waitFrame;
42+ repeatTime--;
43+ nowFrame = waitFrame;
44+ }
45+ }
46+ else {
47+ haveAddToQueue = true ;
4048 }
41- }
42- else {
43- haveAddToQueue = true ;
44- }
4549
50+ }
4651 }
4752}
4853
@@ -68,6 +73,7 @@ void TaskInsideUnit::UnitRelease()
6873 }
6974 renderGroupManager.clear ();
7075 }
76+ isInit = false ;
7177}
7278
7379void TaskInsideUnit::addRenderObject (RenderObject * pObject)
0 commit comments