- Joined
- Aug 18, 2009
- Messages
- 4,097
WaterKnight proudly presents... a new kind of Blizzard fail
Recently, I wanted to implement an ingame display to show the amounts of all currently allocated struct types for debugging.
After the kind of linked list worked and the multiboard was set up, two abnormatilities occured. Scrolling through the pages, some rows would suddenly become blank and another one got this phenomenon:
two wo..., one c... -> two words, one cell. Well actually two rendered strings.
A test map would reveal some of the behavior. Multiboards totally screw up if you shrink them in rows or columns and extend them again. I have not completely understood the system but decreasing the size too fast, meaning going from 10 rows to 1 row for example, will render some of the cells useless, you cannot set their properties anymore, respectively cell coordinates could be exchanged, you would control another multiboard item.
As for the parallel texts, I found that the game caches the cells being rendered. That means if you set items, shrink the board and re-extend it, the former contents will be restored. But that is only if those contents have been rendered -> need to insert a wait. Now if you do the re-extension immediately (after shrinking), it redraws the cells but does not adjust the property memory -> you can write something else in there because the game thinks it's empty.
See test map (vJass)
Recently, I wanted to implement an ingame display to show the amounts of all currently allocated struct types for debugging.
After the kind of linked list worked and the multiboard was set up, two abnormatilities occured. Scrolling through the pages, some rows would suddenly become blank and another one got this phenomenon:
two wo..., one c... -> two words, one cell. Well actually two rendered strings.
A test map would reveal some of the behavior. Multiboards totally screw up if you shrink them in rows or columns and extend them again. I have not completely understood the system but decreasing the size too fast, meaning going from 10 rows to 1 row for example, will render some of the cells useless, you cannot set their properties anymore, respectively cell coordinates could be exchanged, you would control another multiboard item.
As for the parallel texts, I found that the game caches the cells being rendered. That means if you set items, shrink the board and re-extend it, the former contents will be restored. But that is only if those contents have been rendered -> need to insert a wait. Now if you do the re-extension immediately (after shrinking), it redraws the cells but does not adjust the property memory -> you can write something else in there because the game thinks it's empty.
See test map (vJass)