Fix pickup combining over the maximum stack size.

Fix #1114
Yes it does, but adding together two chars can produce a number that doesn't fit into a char. And unlike Java, C++ doesn't throw an exception in such a case, it will just wrap the number silently:
```cpp
char num1 = 127
char num2 = 127
char add = num1 + num1;  // add is now -2
```